TypeScript tip o‘zgartirish (casting)


Turlar bilan ishlashda o‘zgaruvchining turini bekor qilish zarur bo‘lgan holatlar mavjud, masalan, kutubxona tomonidan noto‘g‘ri turlar taqdim etilganda.

Kasting - bu turni bekor qilish jarayoni.


ULASHISH

as bilan translatsiya

O‘zgaruvchini uzatishning oddiy usuli bu as kalit so‘zidan foydalanish, bu berilgan o‘zgaruvchining turini bevosita o‘zgartiradi.

Misol

let x: unknown = 'hello';
console.log((x as string).length);
O‘zingiz sinab ko‘ring »

Kasting aslida o‘zgaruvchidagi ma’lumotlar turini o‘zgartirmaydi, masalan, quyidagi kod kutilganidek ishlamaydi, chunki x o‘zgaruvchisi hali ham raqamga ega.

let x: unknown = 4;
console.log((x as string).length); // prints undefined since numbers don't have a length

TypeScript hali ham noto‘g‘ri ko‘rinadigan translatsiyalarning oldini olish uchun translatsiyalarni yozishga harakat qiladi, masalan, quyidagi turdagi xatolikka yo‘l qo‘yadi, chunki TypeScript stringni raqamga uzatish mantiqiy emasligini biladi. ma’lumotlarni o‘zgartirmasdan:

console.log((4 as string).length); // Error: Conversion of type 'number' to type 'string' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
The Force casting section below covers how to override this.



<> bilan translatsiya

<> dan foydalanish as bilan translatsiya qilish bilan bir xil ishlaydi.

Misol

let x: unknown = 'hello';
console.log((<string>x).length);
O‘zingiz sinab ko‘ring »

Ushbu turdagi kasting TSX bilan ishlamaydi, masalan, React fayllari ustida ishlashda.


Majburiy casting

Translatsiya paytida TypeScript chiqarishi mumkin bo‘lgan turdagi xatolarni bekor qilish uchun avval unknown ga, keyin esa maqsadli turga o‘tkazing.

Misol

let x = 'hello';
console.log(((x as unknown) as number).length); // x is not actually a number so this will return undefined
O‘zingiz sinab ko‘ring »



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!