- 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
tscvə sadətsconfig.jsonilə layihə qurmaq.tsfayllarını Node.js və yatsxilə birbaşa işə salmaq, tipləri isətsc --noEmitilə 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?
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:
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.shop.ts:6:25 - error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'.
6 console.log(formatPrice('4.5'));
~~~~~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:
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));Hello, Aysel! You are 14.
greet.ts: type User obyektin quruluşunu təsvir edir.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ş
nullyoxlaması 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): stringbaş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
- 1TypeScript-i quraşdır
Layihə qovluğunda
npm install --save-dev typescriptəmrini icra et. Kompilyatornode_modules-a düşür vənpx tscilə çağırılır. - 2Tənzimləmə faylını yarat
npx tsc --inittövsiyə olunan parametrlərlətsconfig.jsonfaylını yaradır. - 3Kodu yaz
Kodu
src/index.tsfaylına yerləşdir. - 4Kompilyasiya et və işə sal
npx tscbütün layihəni yoxlayır və JavaScript-idist/qovluğuna yazır; sonranode dist/index.jsilə işə sal.
{
"compilerOptions": {
"target": "es2022",
"module": "nodenext",
"strict": true,
"rootDir": "src",
"outDir": "dist"
}
}tsconfig.json. tsc --init daha çox parametr yaradır, amma əsasları bunlardır.| Parametr | Nə edir |
|---|---|
target | hansı JavaScript versiyasının yaradılacağını seçir, məsələn, es2022 |
module | modul sistemini seçir; nodenext müasir Node.js-in qaydalarına uyğundur |
strict | bü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.
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Ə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. tsctiplə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: truehəmişə açıq olmalıdır. node file.tsvətsxkodu işə salır, amma tipləri yoxlamır — bunun üçüntsc --noEmitvar.
Özünü yoxla
10 sual. Hər düzgün cavab XP qazandırır.