برنامه نویسی

جادوی Typescript را کشف کنید

TypeScript گره جادویی برای توسعه JavaScript هنگام صحبت است اعتماد به نفس توسعه دهندهبا مقیاس پذیریوت بیانبشر ساخت برنامه های وب قوی امروز نیاز به ابزاری بهتر و ایمنی در زمان اجرا دارد.

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


چرا Typescript؟

بیایید صادق باشیم ، JavaScript قدرتمند است اما به طور پیش فرض مقیاس خوبی ندارد. با رشد برنامه ها ، تایپ پویا می تواند به یک محدودیت تبدیل شود. TypeScript به ما می دهد:

  • قابلیت پیش بینی: گرفتن اشکالات در زمان کامپایل قبل از رسیدن به کاربران.
  • ابزارهای ابرقدرت: از مستندات خودکار تا درون خطی.
  • اعتماد به نفس تیم: یک زبان مشترک برای توصیف شکل و هدف.

TypeScript برای جایگزینی JavaScript در اینجا نیست. آن را به آن کامپایل می کند ، بنابراین می توانید آن را به صورت تدریجی اتخاذ کنید.


TypeScript vs JavaScript

نشان جاذب شرح
تایپ کردن پویا استاتیک (با استنباط)
ابزار محدود ثروتمند (Intellisense ، Refactoring)
حفظ قابلیت می تواند کثیف شود مقیاس آسان تر
منحنی یادگیری آسان تندتر ، اما پاداش دهنده

JavaScript به شما انعطاف پذیری می دهد. TypeScript به شما اطمینان می دهد.


شروع با TypeScript

می توانید با یک نصب ساده شروع کنید:

npm install -g typescript
حالت تمام صفحه را وارد کنید

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

ایجاد یک فایل پیکربندی:

tsc --init
حالت تمام صفحه را وارد کنید

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

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


اصول اولیه

حاشیه نویسی و استنباط را تایپ کنید

let name: string = "Soumaya";
let age = 33; // inferred as number
حالت تمام صفحه را وارد کنید

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

انواع اساسی

  • stringبا numberبا boolean: انواع داده های ابتدایی.
  • آرایه ها: string[] یا Array – لیستی از موارد از یک نوع واحد.
  • tuples: [string, number] -یک آرایه با اندازه ثابت با انواع مشخص در هر شاخص.
  • Enums: برای ثابت های نامگذاری شده با مقادیر تقویت کننده خودکار یا تکالیف سفارشی.
enum Direction {
  Up,
  Down,
  Left,
  Right
}
حالت تمام صفحه را وارد کنید

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


انواع خاصی که باید بدانید

  • any: چک کردن نوع را خاموش می کند. از مگر اینکه لازم باشد خودداری کنید.
  • unknown: مانند any اما قبل از استفاده نیاز به بررسی نوع دارد.
  • never: نوعی که هرگز رخ نمی دهد. برای توابع مورد استفاده قرار می گیرد که پرتاب یا هرگز برنگردند.

انواع اتحادیه و تقاطع

اتحاد

let input: string | number;
حالت تمام صفحه را وارد کنید

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

متغیری را نشان می دهد که می تواند یکی از چندین نوع باشد.

تقاطع

type Admin = { role: string };
type User = { name: string };
type AdminUser = Admin & User;
حالت تمام صفحه را وارد کنید

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

انواع مختلفی را در یک ترکیب می کند.


نگهبانان

function printId(id: string | number) {
  if (typeof id === 'string') {
    console.log(id.toUpperCase());
  } else {
    console.log(id.toFixed(2));
  }
}
حالت تمام صفحه را وارد کنید

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

نگهبانان نوع شبکه ایمنی در زمان اجرا هستند. آنها به انواع باریک TypeScript به صورت پویا کمک می کنند.


رابط در مقابل نام مستعار

استفاده کردن interface هنگام گسترش اشکال. رابط ها برای ساختارهای شیء عالی هستند.

استفاده کردن type هنگام آهنگسازی انواع ، اتحادیه ها یا الگوی الگوی.

interface Animal {
  name: string;
}
type Dog = Animal & { bark: () => void };
حالت تمام صفحه را وارد کنید

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


ژن

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

function identity<T>(value: T): T {
  return value;
}
حالت تمام صفحه را وارد کنید

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

  • T یک متغیر نوع است این عملکرد را برای هر نوع قابل استفاده مجدد می کند.
  • به طور گسترده در توابع ابزار ، کتابخانه ها و مؤلفه ها استفاده می شود.

انواع ابزارهای داخلی

  • Partial – تمام خواص T اختیاری شوید مفید برای update عملیات
  • Readonly – جلوگیری از اصلاح Tخصوصیات
  • Pick – زیر مجموعه ای از Tخصوصیات
  • Omit – برخی از خواص را از آن خارج کنید Tبشر
  • Record – نوعی با کلیدها ایجاد می کند K و مقادیر نوع Tبشر

نمونه

type User = { id: number; name: string; email: string };
type Preview = Pick<User, "id" | "name">;
حالت تمام صفحه را وارد کنید

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

Preview نسخه سبک تر از User فقط حاوی id وت nameبشر


انواع مارک دار

انواع مارک دار یک امضای منحصر به فرد به انواع دیگر سازگار اضافه می کنند ، و در جلوگیری از مخلوط های تصادفی در هنگام اشتراک انواع مختلف ساختار یکسان ، کمک می کند.

type UserId = string & { readonly brand: unique symbol };
function createUserId(id: string): UserId {
  return id as UserId;
}
حالت تمام صفحه را وارد کنید

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

یک “برند” را اضافه می کند تا انواع ساختاری اسمی شود. از مخلوط کردن تصادفی از انواع مشابه جلوگیری می کند.


اتحادیه های تبعیض آمیز

اتحادیه های تبعیض آمیز اجازه می دهند تا از نوع ایمن بر اساس یک خاصیت مشترک ، به طور معمول باریک شود kindبشر

type Shape = 
  | { kind: 'circle'; radius: number }
  | { kind: 'square'; side: number };

function area(shape: Shape) {
  switch (shape.kind) {
    case 'circle': return Math.PI * shape.radius ** 2;
    case 'square': return shape.side ** 2;
  }
}
حالت تمام صفحه را وارد کنید

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

هر نوع شکل توسط a متمایز می شود kind میدان


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

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

type Route = `/${string}`;
حالت تمام صفحه را وارد کنید

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

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


انواع مشروط و استنباط

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

type Return<T> = T extends (...args: any[]) => infer R ? R : never;
حالت تمام صفحه را وارد کنید

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

نوع بازگشت را استخراج می کند R از یک تابع Tبشر


انواع Tuple Variadic

انواع Tuple Variadic با افزودن یا پخش عناصر به صورت پویا ، دستکاری در تاپل ها را امکان پذیر می کند. این برای آرگومان های عملکردی و الگوهای قابل استفاده مجدد Tuple قدرتمند است.

type AppendNumber<T extends unknown[]> = [...T, number];
حالت تمام صفحه را وارد کنید

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

اجازه می دهد تا گسترش پویا از Tuples. عالی برای تایپ لیست های آرگومان.


انواع بازگشتی

انواع بازگشتی خود را برای نشان دادن ساختارهای تو در تو در توجیه می کنند. آنها برای تایپ داده هایی مانند درختان یا داده های شبیه به JSON مهم هستند.

type Tree<T> = {
  value: T;
  children?: Tree<T>[];
};
حالت تمام صفحه را وارد کنید

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

به انواع اجازه می دهد تا خودشان را ارجاع دهند. برای نشان دادن ساختار داده های تو در تو مفید است.


پایان

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

TypeScript یک ابزار جامع برای ایجاد کدی تمیز تر ، ایمن تر و باهوش تر از رمزگذاری منطق با انواع مشروط تا استنباط مقادیر بازگشت ارائه می دهد.

Mastering TypeScript سطوح جدیدی از کنترل و وضوح را در کد شما باز می کند ، خواه API ها را تعریف کنید ، ساختار داده ها را تغییر دهید ، یا ساختمانهای قدرتمند و قابل استفاده مجدد را ایجاد کنید.

جادو واقعی است و همه در انواع است.

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

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

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

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