Casting

TypeScript-dagi Casting

TypeScript Tiplarni O'zgartirish (Casting)

Ba'zan turlar bilan ishlashda o'zgaruvchining turini o'zgartirish zarur bo'ladi, masalan, agar kutubxona noto'g'ri turlarni taqdim etsa.

Tipni o'zgartirish - bu turini o'zgartirish jarayoni.

as yordamida o'zgartirish

O'zgaruvchini o'zgartirishning oddiy usuli as kalit so'zidan foydalanishdir, bu o'zgaruvchining turini bevosita o'zgartiradi.

Misol:

let x: unknown = 'hello';
console.log((x as string).length);

O'zgartirish aslida o'zgaruvchidagi ma'lumotning turini o'zgartirmaydi, masalan, quyidagi kod kutilganidek ishlamaydi, chunki x o'zgaruvchisi hali ham sonni saqlamoqda.

let x: unknown = 4;
console.log((x as string).length); // undefined chiqaradi, chunki sonlarning uzunligi yo'q

TypeScript hali ham noto'g'ri ko'rinadigan o'zgartirishlarni tekshirishga harakat qiladi, masalan, quyidagi kod tip xatosini chiqaradi, chunki TypeScript ma'lumotlarni konvertatsiya qilmasdan stringni numberga o'zgartirishni mantiqiy deb bilmaydi:

console.log((4 as string).length); // xatolik: 'number' turini 'string' turiga o'zgartirish xato bo'lishi mumkin, chunki ikki tur bir-biriga to'liq mos kelmaydi. Agar bu maqsadli bo'lsa, avval ifodani 'unknown' ga o'zgartiring.

< > yordamida o'zgartirish

<> dan foydalanish as bilan o'zgartirish kabi ishlaydi.

Misol:

let x: unknown = 'hello';
console.log((<string>x).length);

Bu turdagi o'zgartirish TSX bilan ishlashda, masalan, React fayllarida ishlamaydi.

Majburlash bilan o'zgartirish

TypeScript tomonidan o'zgartirishda chiqarilishi mumkin bo'lgan tip xatolarini o'zgartirish uchun, avval unknown ga, keyin esa maqsadli turga o'zgartiring.

Misol:

let x = 'hello';
console.log(((x as unknown) as number).length); // x aslida number emas, shuning uchun bu undefined qaytaradi

Ushbu sahifada

GitHubda tahrirlash