از انواع ابزار TypeScript استفاده کنید و می توانید از کدهای گویاتر که قوی تر نیز هستند بهره مند شوید.
TypeScript ابر مجموعه ای از جاوا اسکریپت است که به شما امکان می دهد تایپ استاتیک را به پایه کد خود اضافه کنید. TypeScript با سیستم تایپ قدرتمند خود، خوانایی کد بهبود یافته و توانایی تشخیص خطاها در طول زمان کامپایل را ارائه می دهد.
یکی از سودمندترین جنبههای TypeScript، انواع ابزار داخلی آن است که میتواند تلاشهای کدنویسی شما را ساده کند و در زمان با ارزش توسعه صرفهجویی کند. نگاهی به این نوع ابزارهای ضروری TypeScript بیندازید که می توانند به شما در نوشتن کدهای ایمن تایپ به راحتی کمک کنند.
1. نوع سودمند جزئی
نوع ابزار جزئی TypeScript به شما این امکان را می دهد که هر ویژگی یک شی را اختیاری کنید. این به شما امکان می دهد اشیایی با ویژگی های خاصی ایجاد کنید که ممکن است گم شده یا تعریف نشده باشند. به عنوان مثال:
interface User {
name: string;
age: number;
email: string;
}
با استفاده از نوع کاربردی جزئی، می توانید نوع جدیدی با تمام ویژگی های رابط کاربری که به صورت اختیاری تنظیم شده است ایجاد کنید:
type OptionalUser = Partial<User>
اکنون میتوانید نمونهای از نوع OptionalUser ایجاد کنید که فقط برخی از ویژگیهای آن تعریف شده باشد:
const user: OptionalUser = { name: "John" };
ممکن است با موقعیتهایی مواجه شوید که نیاز به ایجاد یک شی با ویژگیهای اختیاری خاص داشته باشید. این می تواند به ویژه در هنگام ساخت فرم هایی که دارای چندین فیلد هستند مفید باشد، زیرا ممکن است به همه آنها نیاز نباشد و در چنین مواردی، کاربرد جزئی می تواند حیاتی باشد.
2. نوع ابزار را انتخاب کنید
نوع کاربردی Pick TypeScript می تواند به شما کمک کند تا با انتخاب تنها زیرمجموعه ای از ویژگی ها از یک نوع موجود، یک نوع جدید ایجاد کنید. وقتی میخواهید یک شی بزرگتر را فقط به چند ویژگی مورد نیاز محدود کنید یا اگر میخواهید روی ویژگیهای مورد نیازتان تایپ دقیق اعمال کنید، مفید است.
interface User {
location: string;
age: number;
email: string;
}
type PersonWithoutEmail = Pick<User, 'location' | 'age'>;
const person: PersonWithoutEmail = {
location: 'USA',
age: 30
};
در این مثال، رابطی به نام «کاربر» سه ویژگی ایمیل، سن و مکان را تعریف می کند.
با استفاده از نوع ابزار Pick، میتوانید ویژگیهای «مکان» و «سن» را بهطور انتخابی از رابط کاربری استخراج کنید و در نتیجه نوع جدیدی به نام «PersonWithoutEmail» ایجاد کنید.
سپس می توانید یک نمونه جدید از نوع “PersonWithoutEmail” ایجاد کنید و مقادیر را فقط به ویژگی های “location” و “age” اختصاص دهید. از آنجایی که ویژگی “email” از این نوع حذف شده است، نمی توانید آن را به شی اختصاص دهید.
با نوع ابزار Pick، می توانید نوع جدیدی بسازید که فقط ویژگی های مورد نظر شما را در خود جای دهد. این می تواند به خوانایی بیشتر کد شما و کار با آن آسان تر کمک کند.
3. نوع ابزار فقط خواندنی
نوع فقط خواندنی نشان می دهد که ویژگی های یک شی پس از ایجاد آن تغییرناپذیر است. این نوع یکپارچگی داده های شی را در طولانی مدت تضمین می کند و در نتیجه مدیریت کد نرم تر و ایمن تر می شود.
interface User {
readonly name: string;
readonly age: number;
readonly email: string;
}
با استفاده از نوع ابزار Readonly، می توانید یک نوع جدید با تمام ویژگی های رابط کاربری که به عنوان فقط خواندنی تعیین شده اند ایجاد کنید:
type ReadonlyUser = Readonly<User>
هنگام ایجاد یک نمونه ReadonlyUser می توانید مقادیر ویژگی را مشخص کنید:
const user: ReadonlyUser = {
name: "John",
age: 30,
email: "john@example.com"
};
هنگامی که ویژگی های یک شی را به عنوان فقط خواندنی علامت گذاری می کنید، تلاش برای تغییر مقادیر آن ویژگی ها غیرممکن می شود:
user.name = "Jane";
// Error: Cannot assign to 'name' because it is a read-only property.
نوع Readonly به ویژه در شرایطی که میخواهید مطمئن شوید که یک شیء خاص تغییر نمیکند، مهم است. به عنوان مثال، اگر یک شی دارید که تنظیمات پیکربندی مهمی را در خود نگه می دارد، باید مطمئن شوید که بدون تغییر باقی می ماند.
4. نوع ابزار مورد نیاز
این نوع تضمین میکند که تمام ویژگیهای اساسی یک شی وجود دارد، در حالی که نوع جزئی با اجازه دادن به شما در تعیین زیرمجموعهای از ویژگیها در حالی که بقیه را اختیاری میگذارید، انعطافپذیری بیشتری را ارائه میدهد. این می تواند در شرایطی که برخی از خواص ممکن است ضروری نباشند یا در معرض تغییر هستند مفید باشد.
interface User {
name: string;
location: number;
address: string;
}
با استفاده از نوع ابزار مورد نیاز، میتوان نوع جدیدی ایجاد کرد که تمام ویژگیهای رابط کاربری را ترکیب میکند و در عین حال نیاز به وجود هر یک از این ویژگیها دارد. ایجاد یک نمونه RequiredUser تنها زمانی امکان پذیر است که تمام ویژگی های آن به درستی تنظیم شوند.
const user: RequiredUser = {
name: "John Doe",
location: "USA",
address: "Kansas 9745-0622"
};
استفاده از نوع ابزار مورد نیاز تضمین می کند که تمام ویژگی های مورد نیاز در یک شی وجود دارد.
5. نوع ابزار را حذف کنید
نوع ابزار Omit به شما این امکان را می دهد تا با حذف ویژگی های خاص از یک نوع موجود، یک نوع جدید ایجاد کنید.
interface Person {
location: string;
age: number;
email: string;
}
type PersonWithoutEmail = Omit<Person, 'email'>;
const person:PersonWithoutEmail = { location: "USA"; age : 30 };
رابط Person دارای سه ویژگی است: سن، موقعیت مکانی و ایمیل. نوع PersonWithoutEmail از یک نوع ابزار Omit استفاده میکند تا تمام ویژگیهای یک شی Person را شامل شود، به جز ایمیل. سپس میتوانید نمونهای از این نوع جدید، بدون تعیین مقداری برای ویژگی ایمیل ایجاد کنید.
باید به خاطر داشته باشید که نوع ابزار Omit شباهت های قابل توجهی با نوع ابزار Pick دارد، زیرا به شما این امکان را می دهد که نوع جدیدی را تنها با استفاده از ویژگی هایی که مشخص کرده اید ابداع کنید.
6. نوع ابزار را ضبط کنید
می توانید از نوع ابزار Record برای تعریف یک نوع شی که کلیدها و مقادیر آن نوع خاصی دارند استفاده کنید. تعریف آن این است:
type Record<K extends keyof any, T> = { [P in K]: T;};
این نوع T را با مقدار هر کلید مرتبط می کند، در حالی که K ترکیبی از کلیدها از هر نوع است. شیء به دست آمده دارای نوع خاصیت P است که روی T تنظیم شده است.
سناریوی یک نوع شی را با کلیدهای رشته ای و مقادیر عددی در نظر بگیرید. در آن صورت، می توانید نوع ابزار Record را به صورت زیر اعمال کنید:
type MyRecord = Record<string, number>;
const myObject: MyRecord = {
"foo": 1,
"bar": 2,
"baz": 3,
}
این مثال MyRecord را به عنوان یک نوع شی با کلیدهای رشته ای و مقادیر عددی مشخص می کند. شی myObject نمونه ای از این نوع را با کلیدهای “foo”، “bar” و “baz” به مقادیر متناظر آنها اختصاص داده است.
ساده سازی کد با انواع ابزارهای TypeScript
این مقاله قدرت بسیار زیاد انواع ابزار تایپ اسکریپت را نشان می دهد – آنها می توانند دارایی ارزشمندی برای ساده کردن کد شما و ایجاد سریعتر و کارآمدتر کردن توسعه باشند. این انواع ابزار و به طور کلی TypeScript می توانند برای اطمینان از اینکه کد شما همیشه بدون خطا بوده و به ساختارهای خاص پایبند است شگفت انگیز باشد.