تايب سكريبت

ما هو “Type Casting” في TypeScript؟

Type Casting هو عملية تحويل نوع البيانات الخاصة بمتغير معين إلى نوع بيانات آخر، في TypeScript نحدد نوع البيانات عند تعريف المتغير ولا يمكن تغييره دون أن نقوم بأمر التحويل (Casting) وذلك بإستخدام عملية التحويل (Casting Operator) والذي يتم باستخدام قوسين زوجية على المتغير الذي نريد تحويل نوع بياناته، ونحدد النوع الجديد الذي نريد أن نحول إليه المتغير كما يلي:

“`typescript
let x: any = “Hello World”;
let lengthOfString: number = (x).length;
“`

في الكود أعلاه، لدينا متغير “x” يحتوي على نص “Hello World” ونحن نود استخراج طول هذا النص ولكن “x” لن يحتوي على خاصية “length” إلا إذا قمنا بتحويله إلى نوع بيانات “string” بإستخدام التحويل(Casting) عن طريق استخدام قوسين، ومن ثم الوصول إلى طول النص كما يلي:

“`typescript
let x: any = “Hello World”;
let lengthOfString: number = (x as string).length;
“`

يمكن استخدام operator as بدلاً من عملية ()variable.

Typescript تتيح لنا أيضًا إمكانية استخدامعملية التحسين(Augmentation). حيث يمكن تحويل عيبًا من نوع إلى نوع آخر متوفر في TypeScript.

“`typescript
interface Customer {
id: number;
name: string;
email: string;
}

interface CustomerVM {
cid: number;
cname: string;
cemail: string;
}

let existing: Customer = { id: 1, name: “Abdulrahman”, email: “[email protected]” };
let newRecord: CustomerVM = { cid: 2, cname: “Ahmed”, cemail: “[email protected]” };

// Map Existing Object to ViewModel Object
let newVmRecord: CustomerVM = { …existing, cname: existing.name, cemail: existing.email };
“`