← Bütün məqalələr

TypeScript, yoxsa JavaScript: tiplərə həqiqətən ehtiyacınız varmı?

Burncode Team 3 dəq oxuma

TypeScript bir çox yeni JavaScript layihəsi üçün standart seçimə çevrilib və bunun belə olması üçün əsaslı arqumentlər var. Lakin «TypeScript əlavə edimmi?» sualı hamı üçün «bəli» cavabı olan sual deyil — bu, kompromisdir və bütöv kod bazasını ona keçirməzdən əvvəl əslində nəyi nəyə dəyişdiyinizi anlamağa dəyər.

TypeScript əslində nədir

TypeScript üzərinə istəyə bağlı tip sistemi əlavə edilmiş JavaScript-dir. Adi JavaScript yazırsınız, sonra dəyişənləri, funksiya parametrlərini və qaytarılan dəyərləri onların gözlədiyi məlumat strukturu ilə annotasiya edirsiniz. Kompilyator kod işə düşməzdən əvvəl bu annotasiyaları yoxlayır, sonra onları silir və JavaScript-in işlədiyi hər yerdə işləyən adi JavaScript yaradır.

Əsas ideya belədir: funksiya ədəd gözlədiyi yerdə ona sətir ötürdüyünüzü icra zamanı deyil, hələ kodu yazarkən öyrənirsiniz — redaktorla inteqrasiya sayəsində çox vaxt hətta faylı saxlamamışdan əvvəl.

Tiplər əslində nə verir

  • Xətalar daha erkən aşkarlanır. Bütöv bir xəta kateqoriyası — yanlış arqument tipləri, xassə adlarında hərf səhvləri, null dəyəri emal etməyi unutmaq — canlı mühitdə istifadəçi tərəfindən deyil, kompilyator tərəfindən tutulur.
  • Həqiqətən dəqiq avtotamamlama. Redaktorunuz obyektin dəqiq strukturunu bilir, ona görə də təxmin etmək əvəzinə real xassə və metodlar təklif edir.
  • Daha təhlükəsiz refaktorinq. Sahənin adını və ya funksiyanın imzasını dəyişin — TypeScript yenilənməli olan hər yeri göstərəcək, siz isə onları qəzalar vasitəsilə bir-bir axtarmayacaqsınız.
  • Sənədləşmə kimi tiplər. Funksiyanın imzası şərhə ehtiyac olmadan onun nə gözlədiyini və nə qaytardığını göstərir — və şərhdən fərqli olaraq, xəbərsiz köhnələ bilməz.

Bunun bədəli nədir

Bunların heç biri pulsuz deyil. Əvvəlcədən daha çox kod yazırsınız — tip annotasiyaları, interfeyslər, işlər mürəkkəbləşdikdə generiklər. Xüsusən də daha mürəkkəb tipləşdirmə nümunələrinə keçdikdə öyrənmə həqiqətən çətinləşir. Üstəlik, TypeScript iş prosesinizə kompilyasiya mərhələsi əlavə edir — bu, səhv gedə biləcək daha bir şey və komandaya yeni qoşulan proqramçıların anlamalı olduğu daha bir məsələdir.

Kiçik skript, tez hazırlanan prototip və ya bir həftəyə atacağınız layihə üçün bu əlavə yük adətən dəymir. Adi JavaScript heç nə itirmədən daha sürətli irəliləməyə imkan verir, çünki qorunmalı uzunömürlü heç nə yoxdur.

TypeScript nə vaxt özünü doğruldur

Kod bazası birdən çox proqramçı ilə işə və ya bir neçə aydan uzun ömrə davam gətirməli olduğu andan etibarən balans dəyişir. Tiplər məlumatlarınız haqqında gizli fərziyyələri kompilyatorun fəal şəkildə yoxladığı bir şeyə çevirir və komanda müəyyən ölçüyə çatdıqda və ya layihə ilk həftələrini arxada qoyduqda bu, böyük əhəmiyyət kəsb edir. Redaktorda tutulan tip xətası saniyələrə başa gəlir. Eyni xəta canlı mühitdə aşkarlansa, sazlama seansına, təcili düzəlişə və bəlkə də narazı müştəriyə başa gəlir.

Praktik cavab

Dəstəkləyəcəyiniz, genişləndirəcəyiniz və ya başqa proqramçıya təhvil verəcəyiniz istənilən layihə üçün — real məhsulların əksəriyyəti məhz belədir — TypeScript bu sərmayəyə dəyər. Həqiqətən birdəfəlik skriptlər üçün isə məcburi deyil. Yeni veb və proqram təminatı layihələrində standart olaraq TypeScript seçirik, çünki kod bazası nə qədər uzun yaşayırsa, tip xətasının bədəli bir o qədər artır, hazırladığımız həllərin əksəriyyəti isə həftələr üçün deyil, illər üçün nəzərdə tutulub.