فهرست سرفصل‌های 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 — تاپل ها (Tuples)

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

تاپل ها (Tuples)

«تاپل تایپ اسکریپت» یعنی یک آرایه تایپ شده با طول ثابت. آرایه (Array) یعنی لیست منظم از مقدارها. در تاپل، نوع هر خانه مشخص است. مثل کیف مدرسه با جیب های مشخص. هر جیب برای یک چیز خاص است.

تعریف تاپل و مقداردهی

تاپل (Tuple) ساختاری آرایه مانند است. هر اندیس نوع خودش را دارد. ترتیب مهم است. اگر جابه جا شود، خطا می گیری. این شبیه کیف لوازم التحریر است. خودکار باید در خانه خودش برود.

// define a tuple type
let ourTuple: [number, boolean, string];

// correct initialization
ourTuple = [5, false, 'Coding God was here'];

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

چرا ترتیب مهم است؟

چون هر خانه نوع خودش را دارد. اگر جای نوع ها عوض شود، دیگر با قرارداد سازگار نیست. پس کامپایلر اخطار می دهد.

// define a tuple type
let ourTuple: [number, boolean, string];

// wrong order causes an error
ourTuple = [false, 'Coding God was mistaken', 5];

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

نکته: اگر تاپل را در پروژه ری اکت دیدی، تعجب نکن. useState یک تاپل برمی گرداند؛ اولی مقدار، دومی تابع تنظیم کننده است.

تاپل فقط خواندنی (Readonly Tuple)

readonly یعنی «فقط بخوان، دست نزن». وقتی readonly نباشد، می توانی مقدارهای جدید push کنی. این بعد از طول تعریف شده، تایپ امن نیست.

// define a tuple type
let ourTuple: [number, boolean, string];

// initialize correctly
ourTuple = [5, false, 'Coding God was here'];

// no type safety beyond initial indices
ourTuple.push('Something new and wrong');
console.log(ourTuple);

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

حالا با readonly جلوی تغییر را بگیر. این مثل چسباندن برچسب «عدم تغییر» روی دفتر است.

// define a readonly tuple
const ourReadonlyTuple: readonly [number, boolean, string] = [5, true, 'The Real Coding God'];

// error: cannot push into a readonly tuple
ourReadonlyTuple.push('Coding God took a day off');

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

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

تاپل نام دار (Named Tuple)

Named Tuple یعنی برای هر اندیس، نام بگذاریم. این باعث خوانایی بهتر می شود. مثل برچسب زدن روی کشوها.

// a named tuple for 2D coordinates
const graph: [x: number, y: number] = [55.2, 41.3];

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

ساختارشکنی (Destructuring)

Destructuring یعنی بازکردن اعضای آرایه یا شیء در متغیرها. مثل خالی کردن کیف روی میز و جداکردن هر چیز.

// tuple destructuring
const graph2: [number, number] = [55.2, 41.3];
const [x, y] = graph2;

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

برای پایه آرایه ها به آرایه ها برو. سپس برای اشیا، صفحه نوع شیء را ببین.

جمع بندی سریع

  • تاپل طول و نوع ثابت دارد.
  • ترتیب اندیس ها بسیار مهم است.
  • برای ایمنی بیشتر از readonly استفاده کن.
  • Named Tuple خوانایی را بهتر می کند.
  • با Destructuring اعضا را جدا کن.