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

ویژگی های کلیدی TypeScript:
1. تایپ ایستا: TypeScript حاشیه نویسی نوع را به جاوا اسکریپت معرفی می کند و توسعه دهندگان را قادر می سازد تا انواع متغیرها، پارامترهای تابع و مقادیر بازگشتی را مشخص کنند. این منجر به خطاهای زمان اجرا کمتر می شود.
2. رابط ها: TypeScript اجازه می دهد تا رابط ها را برای توصیف شکل اشیاء تعریف کند، از ساختار سازگار و مدیریت کد آسان تر اطمینان حاصل کند.
3. کلاس ها و وراثت: TypeScript از برنامه نویسی شی گرا با کلاس ها، وراثت و اصلاح کننده های دسترسی پشتیبانی می کند و آن را برای برنامه های کاربردی در مقیاس بزرگ مناسب می کند.
4. ویژگیهای نوع پیشرفته: ویژگیهایی مانند Union Types، Intersection Types، Generics و Enums انعطافپذیری و کنترل بیشتری بر روی انواع فراهم میکنند.
5. ابزارسازی: TypeScript به خوبی با ابزارها و ویرایشگرهای توسعه مدرن ادغام می شود و ویژگی هایی مانند تکمیل خودکار، refactoring و بررسی نوع بلادرنگ را ارائه می دهد.
مثال پایه:
در اینجا یک مثال ساده از TypeScript در عمل آورده شده است که تایپ استاتیک و رابط ها را نشان می دهد.
// Type Annotation let message: string = "Hello, TypeScript!"; console.log(message); // Interface interface Person { firstName: string; lastName: string; age: number; }// Function with typed parameters and return type function greet(person: Person): string { return `Hello, ${person.firstName} ${person.lastName}. You are ${person.age} years old.`; } // Using the function let user: Person = { firstName: "Jane", lastName: "Doe", age: 30 }; console.log(greet(user));
مزایای TypeScript:
- کیفیت کد بهبود یافته: تایپ استاتیک خطاها را در زمان کامپایل پیدا می کند.
- تجربه توسعهدهنده پیشرفته: پشتیبانی از ابزارهای بهتر، از جمله تکمیل خودکار و refactoring.
- مقیاس پذیری: به دلیل توانایی مدیریت پایگاه های کد پیچیده، برای پروژه های بزرگ مناسب است.
- قابلیت همکاری: با کتابخانه ها و چارچوب های جاوا اسکریپت موجود کار می کند و امکان پذیرش تدریجی را فراهم می کند.
ژنریک ها:
Generics به شما این امکان را می دهد که با کار با هر نوع داده ای اجزای قابل استفاده مجدد ایجاد کنید و در عین حال ایمنی نوع را حفظ کنید.
// Generic Function function identity<T>(arg: T): T { return arg; } let numberIdentity = identity<number>(5); let stringIdentity = identity<string>("Hello, Generics!"); console.log(numberIdentity); // Outputs: 5 console.log(stringIdentity); // Outputs: Hello, Generics!
دکوراتورها:
دکوراتورها نوع خاصی از اعلان هستند که میتوانند برای کلاسها و روشها اعمال شوند و امکان اصلاح رفتار کلاسها یا روشها را فراهم کنند.
function logMethod(target: any, propertyKey: string, descriptor: PropertyDescriptor) { const originalMethod = descriptor.value; descriptor.value = function (...args: any[]) { console.log(`Method called: ${propertyKey}`); return originalMethod.apply(this, args); }; return descriptor; } class Calculator { @logMethod add(a: number, b: number): number { return a + b; } } let calculator = new Calculator(); console.log(calculator.add(2, 3)); // Outputs "Method called: add" then "5"
Async/Await:
استفاده از async/wait کار با کدهای ناهمزمان را خواناتر و ساده تر می کند.
function fetchData(): Promise<string> { return new Promise((resolve) => { setTimeout(() => resolve("Data fetched!"), 2000); }); } async function fetchAndLogData() { console.log("Fetching data..."); const data = await fetchData(); console.log(data); // Outputs: Data fetched! } fetchAndLogData();
انواع پیشرفته:
برای ایجاد تعاریف نوع انعطافپذیرتر و پیچیدهتر میتوانید از انواع پیشرفتهتر مانند انواع Union، Intersection و Literal استفاده کنید.
// Union Types function combine(input1: number | string, input2: number | string): number | string { if (typeof input1 === "number" && typeof input2 === "number") { return input1 + input2; } else { return input1.toString() + input2.toString(); } } console.log(combine(1, 2)); // Outputs: 3 console.log(combine("Hello, ", "World!")); // Outputs: Hello, World! // Literal Types type Direction = "North" | "South" | "East" | "West"; function move(direction: Direction) { console.log(`Moving towards ${direction}`); } move("North"); // Outputs: Moving towards North move("South"); // Outputs: Moving towards South
این مثالها باید پایه محکمی در ویژگیهای پیشرفتهتر TypeScript به شما بدهد. با اینها بازی کنید و ببینید که چگونه می توانند به شما در نوشتن کد قوی تر و قابل نگهداری کمک کنند.
با افزودن انواع به جاوا اسکریپت، TypeScript به توسعه دهندگان کمک می کند تا کدهای قابل اعتمادتر، قابل نگهداری و مقیاس پذیرتر بنویسند.
برای شروع کار با TypeScript، باید آن را نصب کنید. در اینجا یک راهنمای گام به گام برای نصب TypeScript بر روی دستگاه شما آورده شده است:
1. Node.js و npm را نصب کنید
TypeScript به Node.js and npm (Node Package Manager) نیاز دارد. اگر آنها را نصب نکردهاید، میتوانید آخرین نسخه Node.js را از nodejs.org دانلود و نصب کنید.
2. TypeScript را به صورت گلوبال نصب کنید
هنگامی که Node.js and npm را نصب کردید، ترمینال خود را باز کنید (Command Prompt، PowerShell یا هر ترمینال دیگری) و دستور زیر را برای نصب TypeScript به صورت سراسری اجرا کنید:
npm install -g typescript
3. نصب را بررسی کنید
پس از اتمام نصب، می توانید با بررسی نسخه TypeScript آن را تأیید کنید:
tsc --version
4. یک فایل TypeScript ایجاد کنید
یک فایل TypeScript جدید (با پسوند .ts) ایجاد کنید. به عنوان مثال، یک فایل به نام hello.ts ایجاد کنید و کد زیر را اضافه کنید:
let message: string = "Hello, TypeScript!"; console.log(message);
5. TypeScript را به جاوا اسکریپت کامپایل کنید
برای کامپایل کردن فایل TypeScript به جاوا اسکریپت، از کامپایلر TypeScript (tsc) استفاده کنید. دستور زیر را در ترمینال خود اجرا کنید:
tsc hello.ts
6. فایل جاوا اسکریپت را اجرا کنید
اکنون می توانید فایل جاوا اسکریپت کامپایل شده را با استفاده از Node.js اجرا کنید:
node hello.js
شما باید خروجی Hello, TypeScript را ببینید! در ترمینال
خلاصه
- Node.jsand npm را نصب کنید.
- npm install -g typescript را اجرا کنید تا TypeScript به صورت سراسری نصب شود.
- نصب را با tsc --version تایید کنید.
- با کد TypeScript خود یک فایل .ts ایجاد کنید.
- فایل TypeScript را با tsc filename.ts کامپایل کنید.
- فایل جاوا اسکریپت حاصل را با node filename.js اجرا کنید.