Declaration emit
- TypeScript kursu
- Uzman
- Ders 20/35
- 4 dk
declaration ve declarationMap'i öğrenirsin.
Declaration emit nedir?
declaration: true, her TypeScript dosyası için bir .d.ts bildirim dosyası üretir. Bu dosyalar, tür imzalarını içerir ve tüketen projelerin TypeScript ile kullanılmasını sağlar. Kütüphane paketleri için standart bir ayardır.
{
"compilerOptions": {
"declaration": true,
"outDir": "dist"
}
}Üretilen .d.ts dosyaları, tüketicilere tür bilgisi sağlar.
declarationMap nedir?
declarationMap: true, her .d.ts dosyası için bir .d.ts.map üretir; bu, bildirim dosyalarını kaynak TypeScript dosyalarına bağlar. Tüketen projeler, kütüphane türlerine gitmek istediğinde kaynak koduna atlayabilir.
{
"compilerOptions": {
"declaration": true,
"declarationMap": true
}
}declarationMap için declaration da açık olmalıdır.
Uygulama Bildirim dosya adını hesapla
Bir declarationFileName fonksiyonu yaz: kaynak TypeScript yolunu alsın ve .ts uzantısını .d.ts'ye çevirsin. emitDeclarationOnly parametresi false ise .js de üretileceğini belirten bir bilgi döndürsün. declarationFileName("src/index.ts", true) sonucunu yazdır.
Başlangıç kodu
// declarationFileName: kaynak yoldan bildirim adını üretir
// sadece bildirim modunda bildirim adını döndür
// değilse bildirim ve js adını birlikte döndür
// "src/index.ts", true için sonucu yazdırÖrnek çözüm
function declarationFileName(sourcePath: string, emitDeclarationOnly: boolean): string {
const dts = sourcePath.replace(/\.ts$/, ".d.ts");
if (emitDeclarationOnly) return dts;
return dts + " + .js";
}
console.log(declarationFileName("src/index.ts", true));Beklenen çıktı
src/index.d.ts
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 `declaration: true` ne üretir?
- Source map dosyaları
- .d.ts bildirim dosyaları Doğru cevap
- Decorator metadata
- Inline JavaScript
Açıklama: declaration: true her TypeScript dosyası için .d.ts bildirim dosyası üretir; sourceMap harita, emitDecoratorMetadata dekoratör bilgisi, inline JavaScript ise farklı bir kavramdır.
2 Bildirim haritasını aç
{
"compilerOptions": {
"declaration": true,
"____": true
}
}
{
"compilerOptions": {
"declaration": true,
"declarationMap": true
}
}
Açıklama: Bildirim dosyaları için harita üretmek üzere declarationMap kullanılır; sourceMap JavaScript haritası, inlineSourceMap gömülü harita, declaration ise yalnızca bildirim üretir.
3 Declaration parçaları
| Kavram | Anlamı |
|---|---|
declaration: true |
.d.ts üretir |
declarationMap: true |
.d.ts.map üretir |
.d.ts |
tür bildirim dosyası |
emitDeclarationOnly |
yalnızca bildirim üretir |