tsconfig.json

tsconfig.json
tsconfig.json dosya yapısı

tsconfig.json dosyası TypeScript projelerinin en önemli dosyasıdır. tsconfig.json yapılandırma dosyasıdır. Bu dosyada TypeScript kodunun JavaScript'e derlemek için gereken dosyanın yanı sıra seçenekler üzerinde değişiklikler sayesinde tür denetimini azaltabilir veya arttırabilirsiniz.

tsconfig.json İçeriği

tsconfig dosya yapısında bulunan özellikler;
Basit bir tsconfig.json yapısı

json
{
  "compilerOptions": {
    "target": "ES2020",
    "lib": ["dom", "dom.iterable", "esnext"],
    "allowJs": true,
    "skipLibCheck": true,
    "strict": true,
    "noEmit": true,
    "esModuleInterop": true,
    "module": "esnext",
    "moduleResolution": "bundler",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "jsx": "preserve",
    "incremental": true,
    "plugins": [
      {
        "name": "next"
      }
    ],
    "paths": {
      "@/*": ["./*"]
    }
  },
  "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
  "exclude": ["node_modules","public/exercise/**/*"],
}

Compiler Options

TypeScript'in nasıl çalışacağını belirler.

  • target: Hangi JavaScript dil sürümünün referans alacağı belirlenir.
  • lib: TypeScript yerleişk hangi API tanımları kullanacağını belirler.
  • allowJs: JavaScript dosyasının kullanılmasını düzenler. false olursa TypeScript çalışmasında JavaScript dosyaları, TypeScript dosyalarının import etmesine izin vermez.
  • skipLibCheck: Projede kullanılan kütüphane içe aktarıldığında, içe aktarılan kütüphanenin yapısını da inceler.
  • strict: Katı tip denetimi yapar.
  • noEmit: JavaScript dosyası çıktısı oluşturmasına izin vermez.
  • esModuleInterop: CommonJS/AMD/UMD modülleri ES6 modülüne aktarmaya çalışır. false olması durumunda izin vermeyecektir.
  • module: JS dosyalarındaki kullanılacak sözdizimini belirler. commonjs (require/module.exports) "ES2015"(import/export)
  • moduleResolution: TypeScript'in modül içe aktarımını çözümleyeceğini kontrol eder.
  • resolveJsonModule: .json uzantılı dosyaların TypeScript projesinde içe aktarılmasına izin verir.
  • isolatedModule: TypeScript derleyecisine her dosyayı diğer dosyalardan bağımsız olarak tek başına derlenebilirliğini belirtir.
  • jsx: JSX yapısının JavaScript'te yayımlanmasını belirler.
  • incremental: Derlemeleri önbelleğe alarak derleme süresini hızlandırır.
  • plugins: Eklentilerin bulunduğu liste.

Paths

İlgili Projede içe aktarmada 'yolu' belirlemede kullanılır.

Include

Projede dahil edileceklerin bulunduğu yapıdır.

Exclude

Bu kısımdaki dosyalar TypeScript tarafından gözardı edilir.

Kaynakça