یکی از مهمترین قابلیتهای TypeScript سیستم تایپ ایستا (Static Typing) است. این ویژگی باعث میشود قبل از اجرای برنامه بسیاری از خطاهای احتمالی شناسایی شوند و کدهایی خواناتر، ایمنتر و قابل نگهداریتر بنویسیم.
در این جلسه با انواع داده پایه در TypeScript آشنا میشویم و یاد میگیریم چگونه برای متغیرها و توابع تایپ مشخص کنیم.
انواع داده پایه در TypeScript
TypeScript از انواع داده موجود در JavaScript پشتیبانی میکند اما با اضافه کردن تایپگذاری، کنترل بیشتری روی دادهها در اختیار توسعهدهنده قرار میدهد.
سه نوع داده پایه که در این جلسه بررسی میکنیم عبارتاند از:
stringnumberboolean
نوع string در TypeScript
نوع string برای ذخیره و مدیریت دادههای متنی استفاده میشود.
مثال
let username: string = "Ali";
let website: string = 'example.com';در این مثال متغیرها فقط میتوانند مقدار متنی دریافت کنند.
استفاده از Template String
میتوان از Template Literal نیز استفاده کرد:
let firstName: string = "Ali";
let message: string = `Hello ${firstName}`;خطای تایپی در string
اگر مقدار غیررشتهای به متغیر string اختصاص دهیم، TypeScript خطا میدهد:
let title: string = "TypeScript";
// title = 100; ❌ Errorخطا:
Type 'number' is not assignable to type 'string'نوع number در TypeScript
نوع number برای اعداد صحیح و اعشاری استفاده میشود.
مثال
let age: number = 25;
let price: number = 99.99;
let temperature: number = -5;برخلاف بعضی زبانها، TypeScript بین عدد صحیح و اعشاری تفاوتی قائل نمیشود و هر دو را از نوع number در نظر میگیرد.
عملیات ریاضی
let x: number = 10;
let y: number = 5;
let result: number = x + y;
console.log(result);خطای تایپی در number
let score: number = 20;
// score = "twenty"; ❌ Errorنوع boolean در TypeScript
نوع boolean فقط دو مقدار میپذیرد:
truefalse
این نوع بیشتر در شرطها و تصمیمگیریها استفاده میشود.
مثال
let isLoggedIn: boolean = true;
let isAdmin: boolean = false;استفاده در شرطها
let isOnline: boolean = true;
if (isOnline) {
console.log("User is online");
}خطای تایپی در boolean
let hasAccess: boolean = true;
// hasAccess = "yes"; ❌ Errorنحوه تایپگذاری متغیرها
ساختار کلی تعریف متغیر در TypeScript:
let variableName: type = value;مثال:
let productName: string = "Laptop";
let quantity: number = 10;
let available: boolean = true;Type Inference در TypeScript
یکی از قابلیتهای جذاب TypeScript تشخیص خودکار نوع داده است که به آن Type Inference میگویند.
مثال:
let city = "Tehran";TypeScript به صورت خودکار متوجه میشود که نوع city برابر string است.
بنابراین نوشتن این حالت الزامی نیست:
let city: string = "Tehran";اما در پروژههای بزرگ، مشخص کردن نوعها باعث خوانایی بیشتر کد میشود.
تایپگذاری در توابع
در TypeScript میتوان نوع پارامترها و مقدار بازگشتی توابع را نیز مشخص کرد.
مثال
function add(a: number, b: number): number {
return a + b;
}در این مثال:
aوbباید از نوعnumberباشند.- خروجی تابع نیز
numberخواهد بود.
مثال دیگر
function greet(name: string): string {
return `Hello ${name}`;
}تفاوت TypeScript و JavaScript در تایپگذاری
در JavaScript میتوان هر نوع مقداری را به متغیر اختصاص داد:
let value = "hello";
value = 100;
value = true;اما در TypeScript نوع داده کنترل میشود:
let value: string = "hello";
// value = 100; ❌ Errorاین ویژگی از بسیاری از باگهای رایج جلوگیری میکند.
استفاده از نوع any
نوع any باعث میشود TypeScript بررسی تایپی انجام ندهد.
مثال
let data: any = "Hello";
data = 100;
data = true;چرا نباید زیاد از any استفاده کنیم؟
استفاده بیش از حد از any مزایای اصلی TypeScript را از بین میبرد، زیرا عملاً رفتار برنامه شبیه JavaScript معمولی میشود.
بهتر است فقط در شرایط خاص از آن استفاده شود.
نوع unknown؛ جایگزین امنتر برای any
unknown شبیه any است اما امنیت بیشتری دارد.
let value: unknown = "Hello";قبل از استفاده از مقدار باید نوع آن بررسی شود:
if (typeof value === "string") {
console.log(value.toUpperCase());
}جمعبندی
در این جلسه با مهمترین انواع داده پایه در TypeScript آشنا شدیم:
stringnumberboolean
همچنین یاد گرفتیم چگونه متغیرها و توابع را تایپگذاری کنیم و با مفاهیمی مثل Type Inference، any و unknown آشنا شدیم.
در جلسه بعدی سراغ انواع داده پیشرفتهتر مانند آرایهها، تاپلها و Object Type ها خواهیم رفت.
سوالات متداول
آیا تعیین نوع متغیر در TypeScript اجباری است؟
خیر. TypeScript در بسیاری از مواقع نوع داده را بهصورت خودکار تشخیص میدهد، اما مشخص کردن نوعها باعث خوانایی و امنیت بیشتر کد میشود.
تفاوت any و unknown چیست؟
نوع any تمام بررسیهای تایپی را غیرفعال میکند، اما unknown قبل از استفاده نیاز به بررسی نوع داده دارد و ایمنتر است.
آیا TypeScript از انواع داده JavaScript استفاده میکند؟
بله. TypeScript تمام انواع داده JavaScript را پشتیبانی میکند و قابلیت تایپ ایستا را به آنها اضافه میکند.
دسترسی به ویدیوهای کامل دوره
برای مشاهده ویدیوهای کامل هر جلسه، دریافت تمرینها، فایلها و پشتیبانی، میتوانید دوره کامل را تهیه کنید.