Meydan okuma 3: tsconfig
- TypeScript kursu
- Uzman
- Ders 34/35
- 6 dk
Çok projeli bir monorepo yapısını gerektiren bir görev çözersin.
Çok projeli tsconfig
Bu meydan okumada çok projeli bir tsconfig yapısını işleyeceksin. ts.parseConfigFileTextToJson ile bir tsconfig JSON metnini parse et, compilerOptions ve references alanlarına eriş. Monorepo yapılandırmasını okuyup analiz edeceksin.
Uygulama Hedef değeri oku
Bir tsconfig JSON metni ver: hedef "ES2020", strict true, include dizisinde src/**/*.ts olsun. ts.parseConfigFileTextToJson ile çözümle. Derleyici seçeneklerinden hedef değeri yazdır.
Başlangıç kodu
import * as ts from "typescript";
// Bir tsconfig JSON metni ver: hedef "ES2020", strict true
// include dizisinde "src/**/*.ts" olsun
// parseConfigFileTextToJson ile çözümle
// Derleyici seçeneklerinden hedef değeri yazdır
// kodunu buraya yazÖrnek çözüm
import ts from "typescript";
const configText = '{"compilerOptions": {"target": "ES2020", "strict": true}, "include": ["src/**/*.ts"]}';
const result = ts.parseConfigFileTextToJson("tsconfig.json", configText);
const target = (result.config?.compilerOptions as { target?: string })?.target;
console.log(target);Beklenen çıktı
ES2020
Uygulama Referans say
Bir tsconfig JSON metni ver: üç proje referansı içersin, path değerleri ./shared, ./app, ./utils. ts.parseConfigFileTextToJson ile çözümle. Referans dizisinin uzunluğunu yazdır.
Başlangıç kodu
import * as ts from "typescript";
// Bir tsconfig JSON metni ver: üç proje referansı içersin
// path değerleri: "./shared", "./app", "./utils"
// parseConfigFileTextToJson ile çözümle
// Referans dizisinin uzunluğunu yazdır
// kodunu buraya yazÖrnek çözüm
import ts from "typescript";
const configText = '{"references": [{"path": "./shared"}, {"path": "./app"}, {"path": "./utils"}]}';
const result = ts.parseConfigFileTextToJson("tsconfig.json", configText);
const refs = result.config?.references as Array<{ path: string }>;
console.log(refs.length);Beklenen çıktı
3
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir tsconfig JSON metnini parse etmek için hangi API kullanılır?
- ts.parseTsConfig
- ts.parseConfigFileTextToJson Doğru cevap
- ts.loadConfig
- ts.readTsConfig
Açıklama: ts.parseConfigFileTextToJson bir dosya adı ve config metni alır, parse edilmiş JSON döndürür. readTsConfig, parseTsConfig ve loadConfig diye API yoktur.
2 Referans dizisine eriş
const refs = result.config?.____ as Array<{ path: string }>;
const refs = result.config?.references as Array<{ path: string }>;
Açıklama: tsconfig'te proje referansları references dizisinde verilir; projects, depends ve imports tsconfig alanları değildir.
3 tsconfig parçaları
| Kavram | Anlamı |
|---|---|
references |
Proje bağımlılıkları |
compilerOptions |
Derleyici ayarları |
include |
Dosya desenleri |
parseConfigFileTextToJson |
Config metnini parse eder |