tsconfig.json to'liq — target, lib, paths, project references
tsconfig.json — TypeScript kompilyatorining bosh sozlash fayli. 4-darsda asoslarni ko'rdik. Bu darsda amalda kerak bo'lgan barcha muhim parametrlar.
target va lib
{
"compilerOptions": {
"target": "ES2020",
"lib": ["ES2020", "DOM"]
}
}
target — JavaScript ning qaysi versiyasiga kompilyatsiya:
ES5 — eski brauzerlar
ES2015 — modern, arrow function, class, Promise
ES2020 — optional chaining, nullish coalescing
ESNext — eng yangi
lib — qaysi kutubxona turlarini qo'llash:
ES2020 — Promise, Map, Set, optional chaining turlari
DOM — window, document, HTMLElement
DOM.Iterable — DOM da for...of
module va moduleResolution
{
"compilerOptions": {
"module": "NodeNext",
"moduleResolution": "NodeNext"
}
}
Node.js uchun NodeNext, brauzer/bundler uchun ESNext/Bundler.
strict — barcha tekshiruvlarni yoqish
{
"compilerOptions": {
"strict": true
}
}
strict: true bir vaqtda yoqadi:
strictNullChecks — null/undefined alohida tur
noImplicitAny — any bo'lmasa xato
strictFunctionTypes — funksiya parametrlar tekshiruvi
useUnknownInCatchVariables — catch da e: unknown
paths — import yo'llari
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["src/*"],
"@components/*": ["src/components/*"],
"@utils/*": ["src/utils/*"]
}
}
}
import { Button } from "@components/Button"; // ✅
// o'rniga
import { Button } from "../../components/Button";
include va exclude
{
"include": ["src/**/*"],
"exclude": ["node_modules", "dist", "**/*.test.ts"]
}
outDir va rootDir
{
"compilerOptions": {
"rootDir": "src", // kirish manba papkasi
"outDir": "dist" // chiqish papkasi
}
}
To'liq ishchi tsconfig (Node.js)
{
"compilerOptions": {
"target": "ES2020",
"module": "NodeNext",
"moduleResolution": "NodeNext",
"lib": ["ES2020"],
"outDir": "dist",
"rootDir": "src",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"declaration": true,
"sourceMap": true,
"baseUrl": ".",
"paths": {
"@/*": ["src/*"]
}
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist"]
}
Xulosa
{
"compilerOptions": {
"target": "ES2020", // JS versiya
"lib": ["ES2020", "DOM"], // kutubxona turlari
"module": "NodeNext", // modul tizimi
"strict": true, // barcha tekshiruvlar
"outDir": "dist", // chiqish
"rootDir": "src", // kirish
"paths": { "@/*": ["src/*"] }, // import alias
"declaration": true, // .d.ts yaratish
"sourceMap": true, // debug uchun
"esModuleInterop": true, // CommonJS import
"skipLibCheck": true // .d.ts fayllarni tekshirmaslik
}
}
Keyingi dars
60-dars: TypeScript bilan React — props, hooks, events, children tiplari