Skip to content

tsconfig Seçenekleri açıklaması

Önemsediğiniz tsconfig seçenekleri, işe göre gruplandırılmış: tip denetimini sıkılaştır, dil hedefini ve modülleri belirle, neyin üretileceğini denetle, import yollarını eşle, çok projeli derlemeleri yapılandır ve kalan denetimleri ayarla.

Bir tsconfig, derleyiciye hangi dosyaların dahil edileceğini ve ne kadar katı olunacağını söyler. İşin çoğunu iki seçenek yapar: target, JavaScript üretim seviyesini belirler; strict, güvenlik denetimlerinin tamamını tek seferde açar. Aşağıdaki seçenekler davranışı gerçekten değiştirenlerdir; varsayılan olarak açık olanlar not edilmiştir. Yapılandırmanızı bir temelden türetin, ardından yalnızca farklı olanları override edin.

Referans tablosu · 55 kayıt
55 of 55 rows
Katılık
Ana şalter: strictNullChecks, noImplicitAny ve daha birçoğunu tek seferde açar.
Türü çıkarılamayan parametreler ve değişkenler için hata verir (aksi halde any olurdu).
null ve undefined artık her türe atanamaz; bunları açıkça belirtmeniz gerekir.
Fonksiyon parametrelerini kontravaryant olarak denetler; sağlam olmayan callback parametre tiplerini yakalar.
bind, call ve apply'ı fonksiyonun bildirilen parametrelerine göre tip denetiminden geçirir.
Bir sınıf özelliğinin başlangıç değeri yoksa ve kurucu içinde atanmamışsa hata verir.
{ p?: T } şeklindeki isteğe bağlı bir özellik artık açıkça undefined atanmasını kabul etmez.
Temel sınıf üyesini gölgeleyen üyelerde override anahtar kelimesini zorunlu kılar.
Hiç okunmayan bildirilmiş yerel değişkenler için hata verir.
Hiç okunmayan bildirilmiş fonksiyon parametreleri için hata verir.
Hiçbir etkisi olmayan ifade deyimleri için hata verir.
İndeks imzalı anahtarlar için nokta erişimine izin verilmez; köşeli parantez kullanın (obj["key"]).
Bir kod yolu değer döndürürken diğeri döndürmezse hata verir.
Bir switch case'i break olmadan bir sonrakine düşerse hata verir.
Dil ve modüller
JavaScript üretim seviyesi (örn. ES2022); daha yeni hedefler daha az aşağı sürüm dönüşümü üretir.
Kullanılabilir yerleşik API'ler (örn. ES2022, DOM, DOM.Iterable).
Üretilen modül sistemi (örn. ESNext, CommonJS, NodeNext).
Node'un gerçek kurallarını kullanır: her dosya en yakın package.json'dan CJS veya ESM seçer ve göreli import'lar dosya uzantısı ister.
Import yollarının nasıl çözüldüğü (örn. bundler, node, nodenext).
Bir dosyanın modül sayılması: auto (import/export varlığına göre), legacy veya force (her zaman).
CommonJS modüllerinden default import stiline izin verir (çoğu kurulumda varsayılan true).
Yalnızca adlandırılmış değerler export eden modüllerden default import'a izin verir (yalnızca tip seviyesinde).
Import'lar yazıldığı gibi üretilir; yalnızca tip içeren import'lar import type kullanmak zorundadır (TS 5).
Import'ların .json dosyalarını tipli değerler olarak yüklemesine izin verir.
.js dosyalarını derleme girdisine dahil eder.
.js dosyalarını da JSDoc yorumlarını okuyarak tip denetiminden geçirir; allowJs'i ima eder.
.tsx'in nasıl derlendiği: react-jsx (otomatik runtime), react (React.createElement) veya preserve.
Otomatik dahil edilen @types paketlerini bu listeyle sınırlar; boş dizi hiçbirini dahil etmez.
@types paketleri için taranan klasörler; ağaç boyunca her node_modules/@types yerine.
Her dosyanın tek başına dönüştürülebileceğini garanti eder (bundler'lar ve esbuild için gerekli).
Çıktı
Derlenen JavaScript'in yazıldığı yer.
Kaynak dosyaların kökü; çıktı ağacının biçimini kararlı tutar.
Hata ayıklayıcılar TypeScript'e geri eşleyebilsin diye .js.map dosyaları üretir.
Source map'i ayrı bir .js.map dosyası yerine .js dosyasının içinde yorum olarak gömer.
.d.ts tip bildirimleri üretir (kütüphaneler için gerekli).
Editörlerin bildirimlerden TypeScript kaynağına atlaması için .d.ts.map dosyaları üretir.
Yalnızca .d.ts dosyaları üretir; JavaScript'i bundler'a bırakır (declaration veya composite gerektirir).
__rest gibi yardımcıları her dosyaya üretmek yerine tslib'den yeniden kullanır.
Target ES2015'ten eski olduğunda iterasyonlar üzerindeki for..of, spread ve destructuring'i doğru derler.
Üretilen JavaScript'ten yorumları kaldırır.
Yalnızca tip denetimi yapar; dosya yazmaz (çıktıyı bundler üretirken kullanılır).
Yollar
Göreli olmayan modül çözümlemesi için temel dizin.
Import öneklerini konumlara eşler, örn. { "@/*": ["src/*"] }.
Birkaç dizini çözümleme için tek sanal kök gibi ele alır.
Proje yapısı
Bir projeyi proje referansları için derlenebilir olarak işaretler (declaration ve incremental'i açar).
Daha hızlı ve yalıtılmış derlemeler için diğer tsconfig projelerine bağımlı olur.
Bir sonraki çalıştırmada değişmeyen dosyaları yeniden denetlememek için derleme bilgisi kaydeder.
Diğer denetimler
Hız için .d.ts dosyalarının tip denetimini atlar (varsayılan true).
Dosyanın gerçek büyük/küçük harfiyle uyuşmayan import'lar için hata verir.
Dizi ve indeks erişimi T değil T | undefined döndürür.
Sınıf alanları düz atama yerine Object.defineProperty ile oluşturulur (ES2022+ hedeflerinde varsayılan true).
Eski çerçevelerin kullandığı standart öncesi decorator sözdizimini etkinleştirir.
Hata iletilerinde uzun tip adlarını kesmek yerine tam halini raporlar.
Boş bir yan etki import'u (import "./x.css") hiçbir şeye çözülmezse hata verir.
.ts ile biten import yollarına izin verir (noEmit veya emitDeclarationOnly gerektirir).