فهرست سرفصل‌های TypeScript
خانه (Home) معرفی (Introduction) شروع سریع (Get Started) انواع ساده (Simple Types) تعریف صریح و استنتاج نوع (Explicit & Inference) انواع ویژه (Special Types) آرایه ها (Arrays) تاپل ها (Tuples) انواع شیء (Object Types) شمارشی ها (Enums) نام مستعار و اینترفیس ها (Aliases & Interfaces) انواع اتحادی (Union Types) توابع (Functions) تبدیل نوع (Casting) کلاس ها (Classes) جنریک های پایه (Basic Generics) انواع کاربردی (Utility Types) کلیدواژه keyof (Keyof) Null (Null) Definitely Typed (Definitely Typed) به روزرسانی های نسخه 5 (5 Updates) پیکربندی (Configuration) با Node.js (with Node.js) با React (with React) ابزارها (Tooling) انواع پیشرفته (Advanced Types) نگهبان های نوع (Type Guards) انواع شرطی (Conditional Types) انواع نگاشتی (Mapped Types) استنتاج نوع (Type Inference) انواع لیترال (Literal Types) فضای نام (Namespaces) امضاهای ایندکس (Index Signatures) ادغام اعلان ها (Declaration Merging) برنامه نویسی ناهمگام (Async Programming) دکوراتورها (Decorators) در پروژه های JS (in JS Projects) مهاجرت (Migration) مدیریت خطا (Error Handling) بهترین شیوه ها (Best Practices) ادیتور (Editor) تمرین ها (Exercises) آزمون (Quiz) سرفصل دوره (Syllabus) برنامه مطالعه (Study Plan) گواهینامه (Certificate)
نتیجه‌ای برای جستجو یافت نشد.
TypeScript

TypeScript — نام مستعار و اینترفیس ها (Aliases & Interfaces)

آخرین بروزرسانی: 1404/08/14

نام مستعار و اینترفیس ها (Aliases & Interfaces)

اینجا دو ابزار مهم داریم: نام مستعار نوع (Type Alias) و اینترفیس (Interface). اولی یک اسم ساده برای یک نوع می سازد. دومی شکل یک شیء را تعریف می کند. بنابراین کد تمیزتر و قابل فهم تر می شود.

نام مستعار نوع؛ شروع ساده

با type یک برچسب خوانا به نوع می دهیم. سپس استفاده راحت تر می شود.

type CarYear = number;
type CarType = string;
type CarModel = string;
type Car = {
  year: CarYear,
  type: CarType,
  model: CarModel
};

const carYear: CarYear = 2001;
const carType: CarType = "Toyota";
const carModel: CarModel = "Corolla";
const car: Car = {
  year: carYear,
  type: carType,
  model: carModel
};

مشاهده در ادیتور

اتحادی و اشتراکی؛ ترکیب انواع

اتحادی (Union) یعنی «این یا آن». اشتراکی (Intersection) یعنی «هر دو باهم».

type Animal = { name: string };
type Bear = Animal & { honey: boolean };
const bear: Bear = { name: "Winnie", honey: true };

type Status = "success" | "error";
let response: Status = "success";

مشاهده در ادیتور

اینترفیس ها؛ شکل دهی به شیء

اینترفیس فقط برای شیء است. یعنی ویژگی ها و نوعشان را مشخص می کند.

interface Rectangle {
  height: number,
  width: number
}

const rectangle: Rectangle = {
  height: 20,
  width: 10
};

مشاهده در ادیتور

ادغام اعلان؛ گسترش خودکار

اعلان ادغام یعنی چند تعریف هم نام یکی می شوند. این قابلیت مخصوص اینترفیس است.

interface Animal {
  name: string;
}

interface Animal {
  age: number;
}

const dog: Animal = {
  name: "Fido",
  age: 5
};

مشاهده در ادیتور

ارث بری اینترفیس ها

یک اینترفیس می تواند دیگری را گسترش دهد. سپس ویژگی های جدید اضافه می شود.

interface Rectangle {
  height: number,
  width: number
}

interface ColoredRectangle extends Rectangle {
  color: string
}

const coloredRectangle: ColoredRectangle = {
  height: 20,
  width: 10,
  color: "red"
};

مشاهده در ادیتور

تفاوت ها و توصیه ها

توصیه: برای شیء از interface استفاده کن. برای یونیون، پرایمیتیو و ترکیب ها از type کمک بگیر. اعلان ادغام فقط برای اینترفیس فعال است.

گام های عملی

  1. برای شکل شیء، یک اینترفیس بساز.
  2. برای یونیون یا اشتراک، از نام مستعار نوع استفاده کن.
  3. اگر API عمومی داری، اینترفیس شفاف بنویس.

برای ادامه، سراغ انواع اتحادی برو. همچنین، صفحه نام مستعار و اینترفیس ها را نشانه گذاری کن.

جمع بندی سریع

  • نام مستعار، اسم کوتاه برای نوع است.
  • اینترفیس، شکل دقیق شیء را می دهد.
  • اعلان ادغام فقط برای اینترفیس است.
  • یونیون و اشتراک با type ساخته می شود.