سلام دوستان. توی این پست، قسمت دوم از مجموعه پستهای «آشنایی با Utility Type های پرکاربرد تایپاسکریپت» رو بررسی میکنیم. قسمت اول رو میتونین از اینجا ببینین:
۱۱. تایپ ThisParameterType<Type>
همونطور که میدونیم توی تایپاسکریپت در حالت عادی نوع this توی یک تابع any هست و اگه بخوایم نوع this رو صراحتاً مشخص کنیم میتونیم از روش زیر استفاده کنیم:
function func(<<this: Number>>) { this.toString(); }
حالا اگه بخوایم یک تایپ از نوع this یک تابع داشته باشیم، میتونیم از ThisParameterType استفاده کنیم:
function func(this: Number) { this.toString(); } type MyType = ThisParameterType<typeof func>; // Number
۱۲. تایپ Awaited<Type>
اگه یک تایپ از نوع خروجی یک Promise لازم داریم، میتونیم از Awaited استفاده کنیم:
type A = Awaited<Promise<string>>; // string type B = Awaited<Promise<Promise<number>>>; // number type C = Awaited<boolean | Promise<number>>; // number | boolean
همونطور که میبینیم میتونیم نوع پرامیسهای تو در تو رو هم بدست بیاریم.
۱۳. تایپ ReadonlyArray<Type>
اگه میخوایم یک آرایه Readonly داشته باشیم، میتونیم از این تایپ استفاده کنیم:
const numbers: ReadonlyArray<Number> = [1, 2, 3]; // Error: Property 'push' does not exist on type 'readonly Number[]' numbers.push(4);
همونطور که میبینیم با این کار امکان تغییر اعضای آرایه رو نداریم.
۱۴. تایپ ConstructorParameters<Type>
این تایپ که مشابه Parameters هست، برای زمانی استفاده میشه که میخوایم یک تایپ از نوع پارامترهای Constructor یک کلاس داشته باشیم:
class MyClass { constructor(id: string) { } } const x: ConstructorParameters<typeof MyClass> = ["hi"];
این تایپ یک Tuple برمیگردونه که شامل نوعهای پارامتر تابع مد نظرمون هست.
خب دوستان این قسمت هم به پایان رسید و تونستیم ۱۴ Utility Type پرکاربرد تایپاسکریپت رو بررسی کنیم. امیدوارم استفاده کرده باشین. روزتون خوش ✌️
