Məzmuna keç
Educora
Başlanğıc14 dəq1 / 8

TypeScript nə üçün lazımdır?

TypeScript-in JavaScript-ə nə əlavə etdiyini, kompilyatorun səhvləri kod işə düşməzdən əvvəl necə tutduğunu və `tsc`, `tsconfig.json` və Node.js ilə layihənin necə qurulduğunu öyrən.

Özünü yoxla
Bu dərsdə öyrənəcəksən
  • Statik tiplərin nə olduğunu və hansı səhvləri əvvəlcədən tutduğunu izah etmək
  • TypeScript kodunun JavaScript-ə necə çevrildiyini təsvir etmək
  • tsc və sadə tsconfig.json ilə layihə qurmaq
  • .ts fayllarını Node.js və ya tsx ilə birbaşa işə salmaq, tipləri isə tsc --noEmit ilə yoxlamaq

Təsəvvür et: internet mağazasında qiyməti formatlayan formatPrice(price) funksiyası aylarla qüsursuz işləyir. Bir gün qiymət formadan ədəd yox, '4.5' sətri kimi gəlir və səhifə TypeError: price.toFixed is not a function xətası ilə sınır. Səhvi proqramçıdan əvvəl müştəri gördü. TypeScript məhz buna görə var: belə səhvləri istifadəçi yox, sən — elə redaktorda, kodu yazdığın anda görəsən.

TypeScript nədir?

Tərif
TypeScript

Microsoft-un yaratdığı və JavaScript-ə statik tiplər əlavə edən proqramlaşdırma dili. İstənilən düzgün JavaScript proqramı həm də TypeScript proqramıdır; TypeScript sadəcə dəyişənlərin, parametrlərin və funksiyaların hansı növ qiymətlər saxladığını təsvir etməyə imkan verir.

JavaScript-də tiplər dinamik yoxlanılır — yalnız sətir həqiqətən icra olunanda. TypeScript-də isə tiplər statik yoxlanılır — kodu işə salmadan, sadəcə oxumaqla. Tip iki nöqtədən sonra yazılır və buna tip annotasiyası deyilir: price: number «price həmişə ədəddir» deməkdir. Harasa sətir ötürsən, kompilyator dərhal xəbər verəcək:

TypeScript
function formatPrice(price: number): string {
  return price.toFixed(2) + ' AZN';
}

console.log(formatPrice(4.5));
console.log(formatPrice('4.5'));
: string funksiyanın sətir qaytardığını bildirir. İkinci çağırış səhvdir.
Text
shop.ts:6:25 - error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'.

6 console.log(formatPrice('4.5'));
                          ~~~~~
Kompilyatorun mesajı: fayl, sətir və sütun (shop.ts:6:25), xəta kodu TS2345 və səbəb. Dalğalı xətt səhv yeri göstərir.

TypeScript-dən JavaScript-ə

Brauzerlər və Node.js əslində yalnız JavaScript başa düşür. Ona görə TypeScript kompilyatoru tsc iki iş görür: tipləri yoxlayır və tiplərin sadəcə silindiyi adi JavaScript kodu yaradır. Aşağıda kiçik bir fayl və tsc-nin ondan düzəltdiyi JavaScript var:

TypeScript
type User = { name: string; age: number };

export function greet(user: User): string {
  return `Hello, ${user.name}! You are ${user.age}.`;
}

const aysel: User = { name: 'Aysel', age: 14 };
console.log(greet(aysel));
Gözlənilən nəticə
Hello, Aysel! You are 14.
greet.ts: type User obyektin quruluşunu təsvir edir.
JavaScript
export function greet(user) {
    return `Hello, ${user.name}! You are ${user.age}.`;
}
const aysel = { name: 'Aysel', age: 14 };
console.log(greet(aysel));
tsc-nin nəticəsi — greet.js: type User sətri və bütün annotasiyalar yoxa çıxıb, məntiq isə eynidir.

Tiplər nə qazandırır?

  • Səhvlər erkən tutulur: xassə adında hərf səhvi, yanlış arqument, unudulmuş null yoxlaması proqram işə düşməzdən əvvəl tapılır.
  • Ağıllı redaktor: redaktor hər qiymətin nə olduğunu bildiyi üçün avtomatik tamamlama, tərifə keçid və bütün layihədə təhlükəsiz ad dəyişmə işləyir.
  • Tiplər sənəd rolunu oynayır: formatPrice(price: number): string başlığından funksiyanın gövdəsini oxumadan necə istifadə olunduğu aydındır.
  • Böyük layihələrdə təhlükəsiz dəyişikliklər: funksiyanın parametrlərini dəyişəndə kompilyator düzəldilməli olan bütün yerlərin siyahısını verir.

Layihəni qurmaq

  1. 1
    TypeScript-i quraşdır

    Layihə qovluğunda npm install --save-dev typescript əmrini icra et. Kompilyator node_modules-a düşür və npx tsc ilə çağırılır.

  2. 2
    Tənzimləmə faylını yarat

    npx tsc --init tövsiyə olunan parametrlərlə tsconfig.json faylını yaradır.

  3. 3
    Kodu yaz

    Kodu src/index.ts faylına yerləşdir.

  4. 4
    Kompilyasiya et və işə sal

    npx tsc bütün layihəni yoxlayır və JavaScript-i dist/ qovluğuna yazır; sonra node dist/index.js ilə işə sal.

JSON
{
  "compilerOptions": {
    "target": "es2022",
    "module": "nodenext",
    "strict": true,
    "rootDir": "src",
    "outDir": "dist"
  }
}
Minimal tsconfig.json. tsc --init daha çox parametr yaradır, amma əsasları bunlardır.
ParametrNə edir
targethansı JavaScript versiyasının yaradılacağını seçir, məsələn, es2022
modulemodul sistemini seçir; nodenext müasir Node.js-in qaydalarına uyğundur
strictbütün ciddi yoxlamaları açır — həmişə true saxla
rootDir / outDir.ts mənbələrinin harada olduğunu və .js nəticəsinin hara yazılacağını göstərir

.ts fayllarını birbaşa işə salmaq

Müasir Node.js (22.18 və daha yeni versiyalar, o cümlədən Node.js 24) .ts faylını birbaşa işə sala bilir: node index.ts. Bunun üçün tiplərin silinməsi (type stripping) üsulundan istifadə olunur: Node.js tipləri sadəcə kəsib atır və qalan JavaScript-i icra edir. tsx aləti eyni işi Node.js-in köhnə versiyalarında da görür.

Terminal
node src/index.ts      # Node.js 22.18+: strip the types and run
npx tsx src/index.ts   # tsx: run TypeScript on older Node.js too
npx tsc --noEmit       # only check the types, write no files
Kodu işə salmağın iki yolu və tipləri yoxlamaq üçün bir əmr.

Əsas fikirlər

  • TypeScript JavaScript-ə statik tiplər əlavə edir; səhvlər kod işə düşməzdən əvvəl tapılır.
  • Tip annotasiyası iki nöqtədən sonra yazılır: price: number.
  • tsc tipləri yoxlayır və tiplər silinmiş adi JavaScript yaradır; icra zamanı tiplər yoxdur.
  • Layihənin parametrləri tsconfig.json-da saxlanılır; strict: true həmişə açıq olmalıdır.
  • node file.ts və tsx kodu işə salır, amma tipləri yoxlamır — bunun üçün tsc --noEmit var.

Özünü yoxla

10 sual. Hər düzgün cavab XP qazandırır.

1 / 10
TypeScript JavaScript-ə əsasən nə əlavə edir?