یکی از مهم‌ترین قابلیت‌های TypeScript سیستم تایپ ایستا (Static Typing) است. این ویژگی باعث می‌شود قبل از اجرای برنامه بسیاری از خطاهای احتمالی شناسایی شوند و کدهایی خواناتر، ایمن‌تر و قابل نگهداری‌تر بنویسیم.

در این جلسه با انواع داده پایه در TypeScript آشنا می‌شویم و یاد می‌گیریم چگونه برای متغیرها و توابع تایپ مشخص کنیم.


انواع داده پایه در TypeScript

TypeScript از انواع داده موجود در JavaScript پشتیبانی می‌کند اما با اضافه کردن تایپ‌گذاری، کنترل بیشتری روی داده‌ها در اختیار توسعه‌دهنده قرار می‌دهد.

سه نوع داده پایه که در این جلسه بررسی می‌کنیم عبارت‌اند از:

  • string
  • number
  • boolean

نوع 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 فقط دو مقدار می‌پذیرد:

  • true
  • false

این نوع بیشتر در شرط‌ها و تصمیم‌گیری‌ها استفاده می‌شود.

مثال

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 آشنا شدیم:

  • string
  • number
  • boolean

همچنین یاد گرفتیم چگونه متغیرها و توابع را تایپ‌گذاری کنیم و با مفاهیمی مثل Type Inference، any و unknown آشنا شدیم.

در جلسه بعدی سراغ انواع داده پیشرفته‌تر مانند آرایه‌ها، تاپل‌ها و Object Type ها خواهیم رفت.


سوالات متداول

آیا تعیین نوع متغیر در TypeScript اجباری است؟

خیر. TypeScript در بسیاری از مواقع نوع داده را به‌صورت خودکار تشخیص می‌دهد، اما مشخص کردن نوع‌ها باعث خوانایی و امنیت بیشتر کد می‌شود.


تفاوت any و unknown چیست؟

نوع any تمام بررسی‌های تایپی را غیرفعال می‌کند، اما unknown قبل از استفاده نیاز به بررسی نوع داده دارد و ایمن‌تر است.


آیا TypeScript از انواع داده JavaScript استفاده می‌کند؟

بله. TypeScript تمام انواع داده JavaScript را پشتیبانی می‌کند و قابلیت تایپ ایستا را به آن‌ها اضافه می‌کند.

دسترسی به ویدیوهای کامل دوره

برای مشاهده ویدیوهای کامل هر جلسه، دریافت تمرین‌ها، فایل‌ها و پشتیبانی، می‌توانید دوره کامل را تهیه کنید.