TypeScript چیست؟ چرا باید آن را یاد گرفت؟
تایپ اسکریپت (TypeScript) از جمله زبانهای برنامه نویسی منبع باز است که توسط شرکت مایکروسافت توسعه پیدا کرده است. این زبان برنامه نویسی در سال 2012 قدم به دنیای امروزی گذاشت و با گذشت زمان و تکامل ویژگیها و قابلیتها جذابیت زیادتری پیدا کرد. به زبان ساده میتوان هرآنچه در جاوا اسکریپت پیدا شود میتواند در تایپ اسکریپت با ویژگیهای پیشرفته بیشتری نمایان شود. (یعنی امکان ادغام پروژههای آنها نیز وجود دارد.)
TypeScript چیست؟
تایپ اسکریپت یک ابرمجموعه (به انگلیسی Superset) از زبان جاوا اسکریپت است که تایپ گذاری استاتیک (ایستا – Static) اختیاری، کلاسها (Class)، اینترفیسها و سایر ویژگیهای پیشرفته را به جاوا اسکریپت اضافه میکند. این زبان توسط شرکت مایکروسافت توسعه داده شده و برای نخستین بار در اکتبر 2012 به صورت عمومی منتشر شد. از زمان عرضه تاکنون، تایپ اسکریپت با سرعت چشمگیری در جامعه توسعه دهندگان وب مورد پذیرش قرار گرفته و امروزه یکی از پرکاربردترین زبانها در توسعه فرانت اند و بک اند مبتنی بر جاوا اسکریپت به شمار میرود.
ویژگیهای کلیدی TypeScript
زبان برنامه نویسی تایپ اسکریپ ویژگیهای بسیار مهمی را برای توسعه مدرن وب ارائه میدهد؛ ویژگیهایی که چارچوب محدودیتهای جاوا اسکریپت را شکسته و استانداردی جدید در برنامه نویسی فرانت اند ایجاد میکنند. در ادامه برخی از ویژگیهای مهم تایپ اسکریپت را موشکافی میکنیم:
تایپ گذاری استاتیک
زبان برنامه نویسی TypeScript دارای یک سیستم تایپ قوی مانند زبانهای سطح پایین است که امکان تعیین نوع متغیرها، پارامترهای توابع و مقادیر بازگشتی را در زمان کامپایل فراهم میکند. این قابلیت باعث شناسایی زودهنگام خطاهای مرتبط با نوع داده میشود و کد را قابل اعتمادتر و کم اشکالتر میکند. در حالی که در جاوا اسکریپت نوع دادهها به صورت پویا و در زمان اجرا تعیین میشود و بسیاری از این خطاها تا زمان اجرا مشخص نمیشوند.
let num1 = 10; // num1 is dynamically typed as a number
let num2 = "20"; // num2 is dynamically typed as a string
let result = num1 + num2; // No error at compile-time
console.log(result); // Output: "1020"
برای مثال، کد بالا را در نظر بگیرید، پاسخی که در انتهای کد، لاگ به ما میدهد 1020 است، جمع دو تایپ مختلف عدد و استرینگ که اصلا چیزی نیست که شما در کد خود بخواهید. این نمونه کد نشان میدهد که ممکن است به مشکل بخورید بدون اینکه اروری را در کنسول خود ببینید. در نمونه زیر میبینید که چگونه قبل از اجرا میتوانید با تایپ گذاری استاتیک در تایپ اسکریپت نوع متغیر خود را به سادگی تعیین کنید. این کار نوعی باعث جلوگیری از این نوع ارورها میشود.
let num1: number = 10; // num1 is statically typed as a number
let num2: string = "20"; // num2 is statically typed as a string
let result = num1 + num2; // Error: Type 'string' is not assignable to type 'number'
تایپ گذاری اختیاری
تایپ اسکریپت انعطاف پذیری بالایی ارائه میدهد، میتوانید به صورت صریح نوع دادهها را مشخص کنید یا اجازه دهید کامپایلر، نوع متغیر را به صورت خودکار از روی Type Inference استنباط کند. همچنین نوع “any” امکان استفاده موقت از رفتار پویا، مشابه جاوا اسکریپت را فراهم میکند، این ویژگی مهاجرت تدریجی از جاوا اسکریپت به تایپ اسکریپت را آسانتر میکند.
پشتیبانی کامل از ویژگیهای ES6
زبان تایپ اسکریپت تمام قابلیتهای مدرن جاوا اسکریپت مانند Arrow Function و Async/Await و موارد دیگر را با پشتیبانی کامل از تایپ گذاری ارائه میدهد و امکان نوشتن کدهای تمیز، خوانا و مدرن را فراهم میکند. نمونه کد Arrow Function در تایپ اسکریپت:
const greeting = (name: string): string => {
return `Hello, ${name}!`; // Use of arrow function and template literal
};
console.log(greeting("John")); // Output: Hello, John!
سازماندهی بهتر کدها
تایپ اسکریپت از ماژولهای استاندارد ES و همچنین Namespaceهای داخلی پشتیبانی میکند. این امکانات باعث جداسازی منطقی و مدیریت آسانتر پروژههای بزرگ و پیچیده میشود. برای مثال:
// greeting.ts:
export function greet(name: string): string { // Export a function from a module
return `Hello, ${name}!`;
}
// app.ts:
import { greet } from "./greeting"; // Import from a module
console.log(greet("John")); // Output: Hello, John!
پشتیبانی کامل از برنامه نویسی شیء گرا
تایپ اسکریپت مفاهیم شیء گرایی مانند کلاسها، اینترفیسها، وراثت و دسترسی Modifireها را به صورت کامل و استاندارد پیاده سازی کرده است که منجر به ساختار دهی بهتر و نگهداری آسانتر کد میشود.
class Person {
constructor(public name: string) {} // Define a class with a constructor
greet(): string { // Define a method in a class
return `Hello, my name is ${this.name}!`;
}
}
const john = new Person("John"); // Create an instance of the class
console.log(john.greet()); // Output: Hello, my name is John!
سیستم تایپ پیشرفته
تایپ اسکریپت یکی از قدرتمندترین سیستمهای تایپ را میان زبانهای برنامه نویسی دارد که شامل موارد زیر است:
- جنریکها (Generics) برای نوشتن کدهای قابل استفاده مجدد و نوع امن
- یونیون تایپها (Union Types) و اینترسکشن تایپها (Intersection Types)
- تایپهای شرطی (Conditional Types)
- تایپهای Mapped و یوتیلیتی تایپهای داخلی مانند Partial و Omit
چرا از تایپ اسکریپ استفاده کنیم؟
استفاده از تایپ اسکریپت بنا بر دلایل مختلفی متداول مرسوم شده است. مثل
- ایجاد یک تجربه کاربری لذت بخش برای کاربران به دلیل داشتن یک محیط گسترده و قدرتمند در تشخیص خطاها و این دست از موارد.
- ایجاد کدهایی با کیفیت بالا.
- از بروز خطاها و اشکالات در نرم افزارهایتان تا حد زیای جلوگیری میکند.
- داشتن یک جامعه کاربری فعال و ارزشمند که میتوان در صورت داشتن هرگونه سؤال و یا ابهام استفاده کرد.
- سهولت استفاده از تایپ اسکریپت برای افراد مختلف.
چگونه TypeScript را نصب کنیم؟
در صورتی که به دنبال نصب تایپ اسکریپت هستید بایستی از Node.js و npm (Node Package Manager) استفاده کنید. ( اگر Node.js و npm را نصب نکردهاید، باید آنها را از سایت رسمی Node.js دانلود و نصب کنید.) پس از نصب Node.js و npm، شما قادر خواهید بود TypeScript را به سادگی با استفاده از دستور npm نصب کنید.
مراحل نصب TypeScript به شرح زیر است.
1. در گام نخست ترمینال یا خط فرمان سیستم را باز کنید و در ترمینال دستور زیر را وارد کنید تا تایپ اسکریپت بتواند به صورت سرتاسری نصب شود.
npm install -g typescript
در ابتدا فایل TypeScript را با نام greeter.ts ایجاد کنید و کد زیر را در آن قرار دهید.
type Message = {
text: string;
author: string;
};
function renderMessage(msg: Message): void {
const element = document.createElement("p");
element.innerText = `${msg.author} says: ${msg.text}`;
document.body.appendChild(element);
}
const message: Message = {
text: "TypeScript makes JavaScript safer!",
author: "Amir"
};
renderMessage(message);
برای اطمینان از اینکه TypeScript به درستی نصب شده است، شما میتوانید دستور زیر را اجرا کنید تا نسخه نصب شده TypeScript نمایش داده شود.
tsc -v
اکنون میتوانید فایلی که بالاتر ساختید را اجرا نمایید.
tsc greeter.ts
این دستور فایل TypeScript شما را به یک فایل JavaScript تبدیل میکند. در نهایت، شما TypeScript را نصب کردهاید و میتوانید از آن در پروژههای خود استفاده کنید.
مقایسه TypeScript و JavaScript
اینکه کدام یک از این دو زبان مناسبترند به نوع نیاز شما و پروژهای که روی آن کار میکنید بستگی دارد. هر کدام از این دو زبان نقاط قوت و ضعف خاص خود را دارند که میتوانید از آنها استفاده نمایید.
| ویژگی | TypeScript | JavaScript |
|---|---|---|
| تایپگذاری استاتیک | پشتیبانی کامل | خیر (پویا) |
| تشخیص خطا در زمان کامپایل | بله (قبل از اجرا) | فقط در زمان اجرا |
| استنباط نوع خودکار (Type Inference) | قدرتمند و هوشمند | ندارد |
| پشتیبانی از Generics | کامل | ندارد |
| Union / Intersection Types | دارد | ندارد |
| کلاسها و اینترفیسها | پشتیبانی بومی و کامل | کلاس دارد (ES6+) ولی اینترفیس ندارد |
| Access Modifiers (public, private, protected) | دارد | ندارد (فقط با # در ES2022) |
| Enums | پشتیبانی کامل | ندارد |
| Tuples | دارد | ندارد (فقط آرایه) |
| Decorators (آزمایشی) | پشتیبانی میشود | ندارد |
| سازگاری با کد جاوااسکریپت | ۱۰۰٪ (Superset) | خودش است |
| حجم خروجی نهایی (پس از کامپایل) | جاوااسکریپت خالص | همان کد اصلی |
| پشتیبانی IDE و تکمیل هوشمند کد | عالی (VS Code, WebStorm و …) | خوب، اما محدودتر |
| مناسب برای پروژههای بزرگ و تیمی | بهترین انتخاب | با رشد پروژه مشکلساز میشود |
| زمان یادگیری اولیه | بیشتر از JS | کمتر |
| استفاده در فریمورکهای بزرگ | Angular (رسمی)، React، Vue 3، NestJS | همه جا، اما بدون تایپ |
| کامپایل به جاوااسکریپت | لازم است (tsc) | مستقیم اجرا میشود |
ابزارها و محیطهای توسعه (IDE) تایپ اسکریپت
در این بخش قصد داریم تا به توضیح درباره برخی از محیطهای توسعهای که برای برنامه نویسی با این زبان مناسباند بپردازیم.
1. VS Code از جمله پرکاربردترین ویرایشگر متن است که توسط مایکروسافت توسعه پیدا کرده است و با ارائه امکانات متعدد محیط مناسبی را برای توسعه دهندگان ایجاد کرده است.
2. WebStorm یک IDE قدرتمند برای جاوا اسکریپت و تایپ اسکریپت است. که به ارائه امکانات متعددی میپردازد و گزینهای مناسب برای پروژههای بزرگ و پیچیده این زبان قدرتمند بسیار مناسب است.
3. اگر به دنبال سرعت بالا در کنار سادگی هستید Sublime Text یک ویرایشگر متن سریع و سبک برای شماست.
در صورتی که به دنبال افزایش قدرت و کنترل بر روی وب سایت خود هستید سرور مجازی پویان آی تی بهترین انتخاب برای شماست و با ارائه کنترل کامل بر تنظیمات، ارائه منابع متنوع، مقیاس پذیری و امنیت بالا در مسیر توسعه کسب و کارتان در کنار شما خواهد بود.
و در آخر
TypeScript از جمله زبانهای برنامه نویسی است که توسط مایکروسافت توسعه پیدا کرد و در سال 2012 معرفی شد. این زبان برنامه نویسی بر پایه جاوا اسکریپت است و همه قابلیتهای آن را دارد. از جمله ویژگیهای این زبان برنامه نویسی میتوان به تایپ استاتیک، پشتیبانی توسط کلاسها و ماژولها، داشتن ابزار توسعه برای بهبود و تحلیل کدها و این دست از موارد اشاره کرد. شما با استفاده از تایپ اسکرپیت میتوانید میزان خطاها را کاهش دهید و خوانایی و نگهداری کدها و توسعه آنها را بهبود بخشید. همچنین از آن در توسعه پروژههای بزرگ استفاده کنید. در کنار آن تایپ اسکریپت معایبی نیز دارد که برای مثال میتوان به یادگیری زمان بر آن و نیاز به کامپایل کردن کدها به جاوا اسکریپت اشاره کرد.
در کل تایپ اسکریپت یک ابزار قدرتمند برای توسعهدهندگانی است که به دنبال نوشتن کدهای پایدارتر، قابل نگهداریتر و ایمنتر هستند، بهویژه در پروژههای بزرگ و پیچیده هستند.
سوالات متداول
از زبان تایپ اسکریپت میتوان در حوزههای فرانت اند، بک اند، توسعه اپلیکیشن و… استفاده کرد.
این زبان به دلیل استفاده گسترده و امنیت بالا قابل استفاده در پروژههای بزرگ و حرفهای است.
منابع
- www.geeksforgeeks.org/introduction-to-typescript
- https://kinsta.com/blog/what-is-typescript/
به این مقاله امتیاز دهید!
میانگین امتیاز 4.8 / 5. تعداد رأی ها : 4
هنوز هیچ رأیی داده نشده. اولین نفر باشید!


اولین دیدگاه را اضافه کنید.