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.

Ushbu sahifada

GitHubda tahrirlash