انواع ابزار در TypeScript: توضیح مفصلی

انواع ابزار در Typescript
TypeScript انواع ابزار را برای کمک به تبدیل یا ایجاد انواع جدید از موارد موجود فراهم می کند.
این نوع ها به TypeScript ساخته شده اند و برای تمیز کردن کد شما بسیار مفیدتر ، بیان و نگهداری آسان تر هستند. شما ممکن است از بعضی ها آگاه باشید و به طور مرتب از آن استفاده کنید در حالی که برخی از لیست ممکن است برای یادگیری جدید باشد.
در زیر تجزیه و تحلیل انواع ابزار کلیدی با تعاریف و نمونه هابشر در پایان یک جدول خلاصه اضافه شده ، خواندن آن را فراموش نکنید.
بیایید بگیریم User
برای مرجع به شرح زیر تایپ کنید:
interface User {
id: string;
name: string;
isAdmin: boolean;
age?: number;
}
1 Partial
تعریف: تمام خصوصیات نوع اختیاری را ایجاد می کند.
از مورد استفاده کنید: هنگامی که می خواهید نسخه ای از نوع ایجاد کنید که ممکن است برخی یا تمام خصوصیات تعریف نشود.
const payload: Partial<User> = { name: "John" }; // Valid ✅
2 Required
تعریف: تمام خصوصیات نوع مورد نیاز را ایجاد می کند.
از مورد استفاده کنید: برای اجرای هر ملک باید فراهم شود.
// Not Valid ❌
const user: Required<User> = { name: "John" };
// Valid ✅ (all properties provided)
const user: Required<User> = {
id: "1",
name: "John",
age: 34,
isAdmin: false
};
3 Readonly
تعریف:: تمام خصوصیات نوع readonly را ایجاد می کند (قابل تنظیم مجدد نیست).
از مورد استفاده کنید: برای ایجاد اشیاء تغییر ناپذیر.
const user: Readonly<User> = { id: "1", name: "John", isAdmin: false };
user.name = "Bob"; // Error: Cannot assign to 'name' because it is a read-only property.
4 Pick
تعریف:: با انتخاب زیر مجموعه از خواص از یک نوع معین ، یک نوع را ایجاد می کند.
از مورد استفاده کنید: برای استخراج خصوصیات خاص از یک نوع.
const userPreview: Pick<User, "id" | "name"> = { id: "1", name: "John" };
5 Omit
تعریف:: با حذف خواص خاص از یک نوع معین ، یک نوع را ایجاد می کند.
از مورد استفاده کنید: برای حذف خصوصیات خاص از یک نوع.
const userDetails: Omit<User, "age" | "isAdmin"> = { id: "1", name: "John" };
می بینید که ما با استفاده از انتخاب و حذف ، به همان نوع زیرین دست یافته ایم. (انتخاب id
وت name
همان حذف است age
وت isAdmin
از نوع User
)
6 Record
تعریف:: نوعی با کلیدهای کلیدها و مقادیر نوع را می سازید.
از مورد استفاده کنید: برای ایجاد یک شیء شبیه به فرهنگ لغت.
type UserRoles = 'ADMIN' | 'CUSTOMER' | 'SUPER_ADMIN'
// Valid ✅
const roleMatrix: Record<UserRoles, boolean> = {
'ADMIN': true,
'CUSTOMER': true,
'SUPER_ADMIN': false
}
// Not Valid ❌
const roleMatrix: Record<UserRoles, boolean> = {
'ADMIN': true,
'CUSTOMER': true,
'SUPER_ADMIN': false,
'MANAGER': true // Error: As MANAGER is not present in UserRoles
}
7 Exclude
تعریف:: از نوع آن دسته ای که به محرومیت اختصاص می یابد ، حذف نمی شود.
از مورد استفاده کنید: برای فیلتر کردن انواع خاص از اتحادیه.
type UserRoles = 'ADMIN' | 'CUSTOMER' | 'SUPER_ADMIN'
type AdminRoles = Exclude<UserRoles, 'CUSTOMER'> // remove the CUSTOMER from UserRoles
const role: AdminRoles = 'CUSTOMER' // Not Valid ❌
const role: AdminRoles = 'ADMIN' // Valid ✅
8 Extract
تعریف:: عصاره هایی از نوع آن دسته از نوع که به اتحادیه اختصاص می یابد.
از مورد استفاده کنید: برای فیلتر کردن انواع خاص از اتحادیه.
type UserRoles = 'ADMIN' | 'CUSTOMER' | 'SUPER_ADMIN'
type AdminRoles = Extract<UserRoles, 'ADMIN' | 'SUPER_ADMIN'> // Only include 'ADMIN' & 'SUPER_ADMIN' from UserRoles
const role: AdminRoles = 'CUSTOMER' // Not Valid ❌
const role: AdminRoles = 'ADMIN' // Valid ✅
9 NonNullable
تعریف:: حذف و تعریف نشده از نوع.
از مورد استفاده کنید: برای اطمینان از اینکه یک نوع قابل برگشت نیست.
type UserId = string | number | null | undefined;
// Valid ✅
const id1: UserId = '12'
const id2: UserId = 12
const id3: UserId = null
const id4: UserId = undefined
type NonNullId = NonNullable<UserId>
// Not Valid ❌
const id5: NonNullId = null; // Error: Type 'null' is not assignable to type 'NonNullId'
برای نکته:
شما می توانید با استفاده از Explude ، نوع غیر قابل تحمل خود را ایجاد کنید. در اینجا نحوه انجام آن آورده شده است.
type UserId = string | number | null | undefined;
type NonNullId = Exclude<UserId, null | undefined>
// Not Valid ❌
const id: NonNullId = null; // Error: Type 'null' is not assignable to type 'NonNullId'
10 ReturnType
تعریف:: نوعی متشکل از نوع بازگشت یک نوع عملکرد را ایجاد می کند.
از مورد استفاده کنید: برای استنباط و استفاده مجدد از انواع بازده عملکرد.
function getUser() {
return { id: "1", name: "John" };
}
type User = ReturnType<typeof getUser>; // { id: number; name: string }
11 Parameters
تعریف:: یک نوع tuple (آرایه) از پارامترهای یک نوع عملکرد را ساخت.
از مورد استفاده کنید: برای استنباط و استفاده مجدد از انواع پارامتر عملکرد. نوع parammets عملکرد را ارائه می دهد.
function updateUser(id: number, name: string) {}
type UpdateParams = Parameters<typeof updateUser>; // [number, string]
// Valid ✅
function updateBook(...params: UpdateParams) {} // params = (id: number, name: string)
updateBook(12, 'Atomic Habits')
جدول خلاصه انواع ابزار کلیدی
ممکن است احساس کنید انواع بسیاری از ابزار توسط TypeScript ارائه شده است. اینطور نیست؟
اما جای نگرانی نیست ، این جدول همه آنها را خلاصه می کند تا بتوانید در هر زمان به آن مراجعه کنید.
نوع ابزاری | هدف |
---|---|
Partial |
همه خصوصیات را اختیاری می کند |
Required |
تمام خواص مورد نیاز را ایجاد می کند |
Readonly |
همه خصوصیات را خوانده می کند |
Pick |
خصوصیات خاص را انتخاب می کند |
Omit |
خصوصیات خاص را حذف می کند |
Record |
یک نوع فرهنگ لغت مانند ایجاد می کند |
Exclude |
انواع اتحادیه را مستثنی می کند |
Extract |
انواع اتحادیه را استخراج می کند |
NonNullable |
حذف کردن null وت undefined
|
ReturnType |
نوع بازگشت یک تابع را دریافت می کند |
Parameters |
پارامترهای یک تابع را دریافت می کند |
بسته شدن نظرات
در این مقاله ، ما انواع مختلفی از ابزار ارائه شده توسط TypeScript را آموختیم و با کمک قطعه های کد به خوبی درک کردیم.
برای هرگونه سؤال یا پیشنهاد ، لطفاً در زیر نظر دهید. 💬
اگر این مقاله را مفید می دانید ، آن را با دوستان خود به اشتراک بگذارید و برای به روزرسانی منظم چنین مقالات خوب دنبال کنید. 🔗
راشی پاتل ، ثبت نام! 😊