فرانت‌اند و جاوااسکریپتschedule1 دقیقه زمان مطالعه•visibility526 بازدید•۱۴۰۵/۰۸/۰۶

۱۰ ترفند پیشرفته تایپ‌اسکریپت (TypeScript) که هر برنامه‌نویس ارشد باید بداند

از Conditional Types و Branded Types گرفته تا infer و Mapped Types؛ ابزارهایی قدرتمند برای ساخت کدهای بدون باگ، منعطف و کاملاً مقیاس‌پذیر در تایپ‌اسکریپت.

سروش مشایخی
سروش مشایخیverified
مدرس اسپاتی‌کد
اشتراک‌گذاری:
۱۰ ترفند پیشرفته تایپ‌اسکریپت (TypeScript) که هر برنامه‌نویس ارشد باید بداند

#ارتقای مهارت از تایپ‌اسکریپت مقدماتی به سطح ارشد (Senior)

تایپ‌اسکریپت فراتر از صرفاً تعریف چند

interface
ساده برای متغیرها است. سیستم تایپ‌های تایپ‌اسکریپت یک زبان برنامه‌نویسی تورینگ کامل درون خود دارد که به شما اجازه می‌دهد رفتارهای پیچیده داده‌ها را در زمان کامپایل تضمین کنید.

##۱. استفاده از Branded Types برای جلوگیری از اشتباهات احمقانه!

گاهی دو متغیر هر دو از نوع

string
هستند، اما به لحاظ منطق دامنه (Domain) کاملاً با هم متفاوتند؛ مثلاً آیدی کاربر (
UserId
) در برابر آیدی دوره (
CourseId
):

typescript
type Brand<K, T> = K & { __brand: T };

type UserId = Brand<string, "UserId">;
type CourseId = Brand<string, "CourseId">;

function enrollUserInCourse(userId: UserId, courseId: CourseId) {
  // این تابع غیرممکن است برعکس صدا زده شود!
}

##۲. استخراج تایپ با کلیدواژه
infer

با استفاده از کلمه کلیدی

infer
می‌توانید نوع بازگشتی یک تابع پرومیس یا آرگومان‌های آن را بدون نیاز به دوباره‌نویسی به دست آورید:

typescript
type UnwrapPromise<T> = T extends Promise<infer U> ? U : T;

type ApiResult = UnwrapPromise<Promise<{ id: number; token: string }>>;
// ApiResult = { id: number; token: string }

##۳. کلیدهای ایمن با Mapped Types و
as

typescript
type Getters<T> = {
  [K in keyof T as `get${Capitalize<string & K>}`]: () => T[K];
};

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

type UserGetters = Getters<User>;
// { getName: () => string; getAge: () => number; }

##سخن پایانی

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

favoriteآیا این مقاله برای شما مفید بود؟ آن را با دوستان خود به اشتراک بگذارید!
اشتراک‌گذاری:
سروش مشایخی

سروش مشایخی

verified

مدرس تاییدشده اسپاتی‌کد

دوره‌های این مدرس

مدرس ارشد فول‌استک، متخصص معماری Next.js، TypeScript و ساخت تجربه‌های کاربری مدرن در اسپاتی‌کد.