Maxsus Turlar
TypeScript-dagi maxsus turlar
Maxsus Turlar
TypeScript-da ma'lumotlarning aniq turiga tegishli bo'lmagan maxsus turlar mavjud.
Tur: any
Eslatma
any turini ishlatmaslikni maslahat beraman.
any turi tur tekshiruvini o'chiradi va barcha turlarni ishlatishga ruxsat beradi.
Quyidagi misol any turidan foydalanmaydi va xatolik chiqaradi:
any ishlatilmagan misol:
let u = true;
u = 'string'; // Xatolik: 'string' turi 'boolean' turiga mos kelmaydi.
Math.round(u); // Xatolik: 'boolean' turi 'number' turiga mos kelmaydi.
any maxsus turiga o'rnatish tur tekshiruvini o'chiradi:
any bilan misol:
let v: any = true;
v = 'string'; // xatolik yo'q, chunki bu "any" turida bo'lishi mumkin
Math.round(v); // xatolik yo'q, chunki bu "any" turida bo'lishi mumkin
any xatolarni oldini olish uchun foydali bo'lishi mumkin, chunki u tur tekshiruvini o'chiradi, lekin TypeScript xavfsizligini ta'minlay olmaydi va avtomatik tugatish kabi tur ma'lumotlariga tayanadigan vositalar ishlamaydi. Unutmang, any turidan imkon qadar qochish kerak.
Tur: unknown
unknown turi any ga o'xshash, lekin xavfsizroq alternativadir.
TypeScript unknown turini ishlatishga yo'l qo'ymaydi, quyidagi misolda ko'rsatilganidek:
let w: unknown = 1;
w = 'string'; // xatolik yo'q
w = {
runANonExistentMethod: () => {
console.log("Men o'ylayman, demak mavjudman");
},
} as { runANonExistentMethod: () => void };
// TypeScript xatolarini qanday oldini olish mumkin, agar turini bilmasak?
// w.runANonExistentMethod(); // Xatolik: Ob'ekt 'unknown' turida.
if (typeof w === 'object' && w !== null) {
(w as { runANonExistentMethod: Function }).runANonExistentMethod();
}
Yuqoridagi misolni any bilan avvalgi misol bilan taqqoslang.
unknown turi, agar ma'lumot turini bilmasangiz, eng yaxshi tanlovdir. Keyinchalik tur qo'shish uchun casting qilish kerak bo'ladi.
Casting — bu as kalit so'zidan foydalanib, xususiyat yoki o'zgaruvchi casting qilingan turga ega ekanligini aytish jarayonidir.
Tur: never
never qachon aniqlansa, xato chiqaradi.
let x: never = true; // Xatolik: 'boolean' turi 'never' turiga mos kelmaydi.
never kamdan-kam ishlatiladi, ayniqsa o'zi mustaqil holda, uning asosiy qo'llanilishi ilg'or generiklarda.
Tur: undefined & null
undefined va null turlari mos ravishda JavaScript primitivlari bo'lgan undefined va null ga ishora qiladi.
let y: undefined = undefined;
let z: null = null;
Bu turlar tsconfig.json faylida strictNullChecks yoqilgan bo'lsa, katta ahamiyatga ega bo'lishi mumkin, aks holda ular kamdan-kam qo'llaniladi.
Last updated on 12/4/2024