JavaScript dilinə tip məlumatı olan sintaksisin əlavə edilməsi təklif olunur

Microsoft, Igalia və Bloomberg şirkətləri JavaScript spesifikasiyasına TypeScript-də istifadə edilənə bənzər açıq tip tərifi sintaksisinin əlavə edilməsini təklif ediblər. ECMAScript standartına daxil edilməsi üçün təklif olunan dəyişikliklərin prototipi hazırda ilkin müzakirə mərhələsindədir (Mərhələ 0). TC39 komitəsinin qarşıdan gələn mart iclasında təklifin ECMA ekspert icmasının iştirakı ilə 1-ci baxış mərhələsinə keçirilməsi planlaşdırılır.

Tip məlumatlarını dəqiq müəyyən etmək, inkişaf zamanı bir çox səhvlərin qarşısını almağa, əlavə optimallaşdırma üsullarını tətbiq etməyə, səhvlərin aradan qaldırılmasını sadələşdirməyə və kodu daha oxunaqlı və üçüncü tərəf tərtibatçıları tərəfindən dəyişdirilməsini və saxlanılmasını asanlaşdırmağa kömək edəcək. Tip dəstəyini əlavə bir xüsusiyyət kimi tətbiq etmək təklif olunur: Tip yoxlamasını dəstəkləməyən JavaScript mühərrikləri və işləmə müddətləri tip annotasiyalarını nəzərə almadan kodu əvvəlki kimi emal edəcək, tip məlumatlarını şərhlər kimi qəbul edəcək. Bununla belə, tip yoxlama vasitələri mövcud məlumatlardan istifadə edərək tipin səhv istifadəsi ilə əlaqəli səhvləri müəyyən edə biləcək.

Şərhlərdə JSDoc annotasiyaları ilə göstərilən tip məlumatlarından fərqli olaraq, dəyişən tərifləri daxilində tiplərin birbaşa göstərilməsi kodu daha vizual, başa düşülən və redaktə etməyi asanlaşdıracaq. Məsələn, TypeScript dəstəyi ilə inteqrasiya olunmuş inkişaf mühitləri, əlavə transformasiyalar olmadan yazılmış JavaScript kodundakı səhvləri dərhal vurğulaya biləcək. Bundan əlavə, daxili tip dəstəyi, bir dildən digərinə transpilyasiya edilmədən TypeScript və Flow kimi yazılmış JavaScript ləhcələrində yazılmış proqramların icrasına imkan verəcək.

JavaScript dilinə tip məlumatı olan sintaksisin əlavə edilməsi təklif olunur

Dəyişənləri, funksiya parametrlərini, obyekt elementlərini, sinif sahələrini və tipli massivləri ("number[]") təyin etmək üçün istifadə edilə bilən "string", "number" və "boolean" tiplərinin əlavə edilməsi təklif olunur. Həmçinin, birləşmə tipləri ("string | number") və generiklər üçün dəstək təmin etmək təklif olunur. let x: string; function add(a: number, b: number) { return a + b; } interface Person { name: string; age: number; } function foo (x: T) { return x; } funksiya foo(x: sətir | nömrə): sətir | nömrə { if (typeof x === nömrə) { return x + 1 } else { return x + "!" } }

Mənbə: opennet.ru

DDoS mühafizəsi, VPS VDS serverləri olan saytlar üçün etibarlı hostinq alın 🔥 DDoS qorunması, VPS VDS serverləri ilə etibarlı veb sayt hostinqi alın | ProHoster