Özet - Emit
- TypeScript kursu
- Uzman
- Ders 22/35
- 4 dk
Emit seçenekleriyle bir kütüphane derleme yapılandırması yazarsın.
Özet: kütüphane derleme yapılandırması
Bir kütüphane derleme yapılandırması dört emit parçasını birleştirir: outDir ile çıktı dizinini belirler, declaration: true ile .d.ts üretir, sourceMap: true ile hata ayıklama haritasını ekler ve gerekiyorsa emitDecoratorMetadata: true ile dekoratör metadata'sını çalışma zamanına taşır. Bu dördü birlikte, tüketiciler için kullanılabilir ve hata ayıklanabilir bir kütüphane üretir.
{
"compilerOptions": {
"outDir": "dist",
"declaration": true,
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true
}
}Bu ayarlar, npm'de yayınlanan kütüphanelerin temel iskeletidir.
Uygulama Kütüphane config'i doğrula
Bir validateLibraryConfig fonksiyonu yaz: config nesnesinin declaration ve outDir alanlarını zorunlu, sourceMap ve emitDecoratorMetadata alanlarını isteğe bağlı kontrol etsin. Eksik zorunlu alanlar için hata dizisine ekleme yapsın. { declaration: true, outDir: "dist", sourceMap: true } config'i için hata sayısını yazdır.
Başlangıç kodu
// validateLibraryConfig: kütüphane config'ini doğrular
// declaration ve outDir zorunlu
// sourceMap ve emitDecoratorMetadata isteğe bağlı
// eksik zorunlu alan için hata ekle
// hata sayısını yazdırÖrnek çözüm
type LibraryConfig = {
declaration?: boolean;
outDir?: string;
sourceMap?: boolean;
emitDecoratorMetadata?: boolean;
};
function validateLibraryConfig(config: LibraryConfig): string[] {
const errors: string[] = [];
if (!config.declaration) errors.push("declaration must be true");
if (!config.outDir) errors.push("outDir must be set");
return errors;
}
const config = { declaration: true, outDir: "dist", sourceMap: true };
console.log(validateLibraryConfig(config).length);Beklenen çıktı
0
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir kütüphane yapılandırması hangi seçenekleri içerir?
- Sadece noEmit ve inlineSourceMap
- Sadece emitDeclarationOnly ve rootDir
- Sadece outDir ve noEmit
- outDir, declaration, sourceMap ve gerektiğinde emitDecoratorMetadata Doğru cevap
Açıklama: Kütüphane yapılandırması çıktı, bildirim, source map ve gerekirse dekoratör metadata'sını birleştirir; noEmit çıktı üretmediği için kütüphane için uygun değildir.
2 Kütüphane için bildirim üret
{
"compilerOptions": {
"outDir": "dist",
"____": true
}
}
{
"compilerOptions": {
"outDir": "dist",
"declaration": true
}
}
Açıklama: Kütüphane için bildirim üretmek üzere declaration kullanılır; noEmit çıktı üretmez, emitDeclarationOnly yalnızca .d.ts üretir, sourceMap ise haritadır.
3 Kütüphane yapılandırma parçaları
| Kavram | Anlamı |
|---|---|
outDir |
çıktı dizinini belirler |
declaration: true |
.d.ts üretir |
sourceMap: true |
hata ayıklama haritası |
emitDecoratorMetadata: true |
dekoratör tür bilgisini taşır |