CodeBlanks Logo Icon CodeBlanks

Declaration emit

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

index.ts
// 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

index.ts
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ç

Soru
{
  "compilerOptions": {
    "declaration": true,
    "____": true
  }
}
Cevap
{
  "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

Uzman bölümündeki tüm dersler