TypeScript konfiguratsiyasi (tsconfig)
Kirish
tsconfig.json fayli har bir TypeScript loyihasining yuragi hisoblanadi.
U TypeScript kompilyatoriga kodingizni qanday qayta ishlash, qaysi fayllarni kiritish va qaysi funksiyalarni yoqish yoki o‘chirish kerakligini aytadi.
Yaxshi sozlangan tsconfig.json dasturchilarning silliq tajribasi va ishonchli tuzilmalarini ta’minlaydi.
Asosiy tushunchalar va tushuntirishlar
- compilerOptions : TypeScript kodingizni qanday kompilyatsiya qilishini boshqaradi (masalan, maqsad, modul, qat’iylik).
- include : Kompilyatsiyaga kiritiladigan fayl yoki papkalar.
- exclude : Istisno qilinadigan fayl yoki papkalar.
- files : Qo‘shiladigan fayllarning aniq ro‘yxati (
includebilan kamdan-kam ishlatiladi). - extends : Boshqa konfiguratsiya faylidan opsiyalarni meros qilib olish.
- references : Monorepos yoki ko‘p paketli sozlashlar uchun loyiha havolalarini yoqish.
Bosqichma-bosqich misollar
Minimal tsconfig.json
{
"compilerOptions": {
"target": "es6",
"module": "commonjs"
},
"include": ["src/**/*"]
}
Kengaytirilgan tsconfig.json
{
"compilerOptions": {
"target": "es2020",
"module": "esnext",
"strict": true,
"baseUrl": ".",
"paths": {
"@app/*": ["src/app/*"]
},
"outDir": "dist",
"esModuleInterop": true
},
"include": ["src"],
"exclude": ["node_modules", "dist"]
}
tsconfig.json faylini yaratish uchun quyidagilarni bajaring:
Misol
tsc --init
Haqiqiy dunyo stsenariylari
- Monorepo: Sozlamalarni paketlar bo‘ylab almashish uchun
referencesvaextendsdan foydalaning. - Library: Tur ta’riflari uchun
declarationvaoutDiro‘rnating. - App: Eng yaxshi moslik uchun
strictvaesModuleInteropdan foydalaning.
Umumiy tuzoqlar va muammolarni bartaraf etish
- Noto‘g‘ri sozlangan
include/excludefayllar o‘tkazib yuborilishi yoki kutilmaganda kiritilishiga olib kelishi mumkin. - Yo‘llar hal qilinmayaptimi?
baseUrlvapathssozlamalarini tekshiring. strictni o‘zgartirgandan so‘ng tip xatolari chiqyaptimi? Kodingizni tip xavfsizligi (type safety) nuqtai nazaridan tekshiring.
Eng yaxshi amaliyotlar
- Xavfsiz kod uchun har doim
strictyoqing. - Monorepos yoki bir nechta loyihalarda konfiguratsiyani takrorlamaslik uchun
extendsdan foydalaning. - Build natijasi papkalarini (masalan,
dist) versiyalar nazorati tizimiga commit qilmang.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
