برنامه نویسی

باز کردن قفل قدرت Typecript: انواع پیشرفته ، نکات عملکرد و بهترین شیوه ها

TypeScript به انتخاب برنامه های جاوا اسکریپت در مقیاس بزرگ تبدیل شده است ، نوع ایمنی ، مقیاس پذیری و تجربه توسعه دهنده را بهبود می بخشد. در حالی که انواع و رابط های اساسی به طور گسترده ای مورد استفاده قرار می گیرند ، باز کردن پتانسیل کامل TypeScript نیاز به درک عمیق از انواع پیشرفته ، بهینه سازی عملکرد و بهترین شیوه ها دارد. در این مقاله به بررسی این مفاهیم با مثال های عملی می پردازیم.

1. انواع پیشرفته Typescript

انواع نقشه برداری شده

انواع نقشه برداری به شما امکان می دهد با تبدیل انواع موجودات موجود ، انواع جدیدی را ایجاد کنید. این برای اجرای محدودیت ها یا ایجاد انواع ابزار مفید است.

// Convert all properties of an object to be readonly
type ReadonlyObject<T> = { readonly [K in keyof T]: T[K] };

interface User {
  name: string;
  age: number;
}

const user: ReadonlyObject<User> = { name: "Alice", age: 30 };
// user.age = 31; // Error: Cannot assign to 'age' because it is a read-only property
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

انواع مشروط

انواع مشروط تحولات نوع قدرتمندی را بر اساس شرایط فراهم می کنند.

type IsString<T> = T extends string ? "Yes" : "No";

type Test1 = IsString<string>; // "Yes"
type Test2 = IsString<number>; // "No"
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

انواع الگوی تحت اللفظی

انواع الگوی الگوی ساخت انواع جدید مبتنی بر رشته را به صورت پویا فعال می کند.

type EventNames<T extends string> = `${T}Started` | `${T}Ended`;

type AppEvents = EventNames<"Download">; // "DownloadStarted" | "DownloadEnded"
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

انواع ابزار

TypeScript انواع ابزار داخلی مانند Partialبا Pickبا Omitوت Record برای ساده سازی تحولات نوع.

interface Person {
  name: string;
  age: number;
  address: string;
}

// Make all properties optional
const partialPerson: Partial<Person> = { name: "John" };

// Pick only specific properties
const pickedPerson: Pick<Person, "name" | "age"> = { name: "John", age: 25 };
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

2. بهینه سازی عملکرد Typescript

از ژنرال های غیر ضروری خودداری کنید

در حالی که ژنرال ها قدرتمند هستند ، استفاده بیش از حد می تواند بر عملکرد و خوانایی تأثیر بگذارد. فقط در صورت لزوم از ژنرال استفاده کنید.

// Inefficient
type Wrapper<T> = { value: T };
const wrappedString: Wrapper<string> = { value: "Hello" };

// More efficient
interface Wrapper { value: string; }
const wrappedValue: Wrapper = { value: "Hello" };
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

استفاده کردن as const برای اشیاء تغییر ناپذیر

با استفاده از as const از گسترش نوع غیر ضروری ، بهبود عملکرد جلوگیری می کند.

const colors = ["red", "blue", "green"] as const;
type Color = (typeof colors)[number]; // "red" | "blue" | "green"
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

انواع باریک را ترجیح دهید any

از استفاده خودداری کنید any همانطور که مزایای TypeScript را نفی می کند. به جای آن از انواع دقیق تر استفاده کنید.

function logMessage(msg: string | number) {
  console.log(msg);
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

3 بهترین شیوه ها برای توسعه Typescript

1. حالت سخت را فعال کنید

حالت دقیق به گرفتن زودرس اشکالات احتمالی کمک می کند.

"compilerOptions": {
  "strict": true
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

2. استنباط نوع اهرم

به جای اینکه به صراحت همه چیز را تایپ کنید ، اجازه دهید تا در صورت امکان انواع TypeScript را استنباط کند.

const count = 10; // TypeScript infers this as `number`
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

3. از ادعاهای نوع کم استفاده کنید

استفاده بیش از حد از as می توانید از نوع چک کردن نوع TypeScript استفاده کنید و خطاهای زمان اجرا را معرفی کنید.

const value: unknown = "Hello";
const length = (value as string).length; // Avoid unless necessary
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

4. تعاریف نوع را خشک نگه دارید (خود را تکرار نکنید)

برای بهبود قابلیت حفظ انواع قابل استفاده مجدد را استخراج کنید.

type ApiResponse<T> = { data: T; success: boolean };
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

5. از ترکیب بیش از وراثت استفاده کنید

ترکیب انواع انعطاف پذیر و قابل استفاده مجدد را نگه می دارد.

interface Logger {
  log: (message: string) => void;
}

interface Database extends Logger {
  save: (data: object) => void;
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

پایان

با تسلط انواع پیشرفته ، بهینه سازی عملکرد و پیروی از بهترین شیوه ها، توسعه دهندگان می توانند قدرت کامل Typecript را باز کنند. این که آیا شما روی یک پروژه کوچک کار می کنید یا یک برنامه در مقیاس بزرگ ، سیستم قوی TypeScript می تواند به شما در نوشتن کد پاک کننده ، ایمن تر و قابل حفظ تر کمک کند.

🚀 ویژگی TypeScript مورد علاقه شما چیست؟ بیایید در نظرات بحث کنیم!

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

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

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

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