TypeScript'ni buzmasdan tez yetkazib berish
TypeScript kodbazasini qat'iy, qulay va tez iteratsiya qilinadigan saqlash patternlari.
Qat'iy TypeScript va tez iteratsiya bir-biriga zid emas — lekin loyihani shunday sozlash kerakki, kompilyator siz uchun ishlasin, sizga qarshi emas.
Qat'iy flaglarni erta yoqing
{
"compilerOptions": {
"strict": true,
"noUncheckedIndexedAccess": true
}
}noUncheckedIndexedAccess faqat strict rejimi o‘tkazib yuboradigan butun bir
sinf undefined xatolarini ushlaydi. Masalan, massiv elementiga indeks orqali
murojaat qilganda uning undefined bo‘lishi mumkinligini majburan tekshirtiradi.
Annotatsiya emas, inferensiya
Inferensiyaga ish bajaring. Faqat chegaralarni — funksiya imzolari va eksport qilingan API'larni — annotatsiya qiling, ichkaridagi hamma narsa o‘zi oqib o‘tsin. Bu kodni ham qisqaroq, ham refaktoringga chidamliroq qiladi.
Holatni union bilan modellashtiring
Diskriminatsiyalangan union'lar imkonsiz holatlarni ifodalab bo‘lmaydigan qiladi:
type Result<T> =
| { status: "loading" }
| { status: "error"; error: Error }
| { status: "success"; data: T };Shundan keyin kompilyator sizni chaqiruv joyida har bir holatni qayta ishlashga majbur qiladi — "ma'lumot bor, lekin yuklanyapti" kabi mantiqiy ziddiyatlar umuman paydo bo‘lmaydi.
Xulosa
- Qat'iy flaglarni loyiha boshida yoqing, keyin emas.
- Chegaralarni annotatsiya qiling, qolganini inferensiyaga qoldiring.
- Holatni union'lar bilan modellashtirib, imkonsiz holatlarni yo‘q qiling.