برنامه نویسی

انواع ابزار در 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 را آموختیم و با کمک قطعه های کد به خوبی درک کردیم.


برای هرگونه سؤال یا پیشنهاد ، لطفاً در زیر نظر دهید. 💬

اگر این مقاله را مفید می دانید ، آن را با دوستان خود به اشتراک بگذارید و برای به روزرسانی منظم چنین مقالات خوب دنبال کنید. 🔗

راشی پاتل ، ثبت نام! 😊

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا