JavaScript diline tür bilgisi içeren sözdiziminin eklenmesi önerilmiştir.

Microsoft, Igalia ve Bloomberg, TypeScript dilinde kullanılan sözdizimine benzer şekilde, açık tür tanımları için JavaScript spesifikasyonuna sözdizimini dahil etme girişiminde bulundu. Şu anda ECMAScript standardına dahil edilmesi önerilen prototip değişiklikleri ön tartışmalara sunulmaktadır (Aşama 0). TC39 komitesinin Mart ayındaki bir sonraki toplantısında, ECMA uzman topluluğunun katılımıyla teklifin ilk değerlendirme aşamasına geçilmesi planlanıyor.

Açıkça belirtilen tür bilgilerine sahip olmak, geliştirme süreci sırasında birçok hatadan kaçınmanıza olanak tanır, ek optimizasyon tekniklerinin kullanılmasını mümkün kılar, hata ayıklamayı basitleştirir ve kodu daha okunaklı hale getirir ve üçüncü taraf geliştiriciler tarafından değişiklik ve destek için daha kolay hale getirir. Tür desteğinin isteğe bağlı bir özellik olarak uygulanması önerilmektedir - tür denetimini desteklemeyen JavaScript motorları ve çalışma zamanları, tür bilgisine sahip ek açıklamaları göz ardı edecek ve kodu daha önce olduğu gibi işleyerek tür verilerini yorum olarak değerlendirecektir. Ancak tür kontrol araçları, türlerin yanlış kullanımıyla ilişkili hataları tanımlamak için mevcut bilgileri kullanabilecektir.

Ayrıca, yorum biçiminde belirtilen JSDoc ek açıklamaları kullanılarak belirtilen tür bilgilerinin aksine, türlerin doğrudan değişken tanım yapılarında doğrudan belirtilmesi, kodu daha görsel, anlaşılır ve düzenlenmesi daha kolay hale getirecektir. Örneğin, TypeScript desteğine sahip IDE'ler, yazılan JavaScript kodundaki hataları ek dönüşümlere gerek kalmadan anında vurgulayabilecektir. Ek olarak yerleşik tür desteği, TypeScript ve Flow gibi yazılan JavaScript lehçelerinde yazılmış programların bir dilden diğerine aktarmadan çalıştırılmasını mümkün kılacaktır.

JavaScript diline tür bilgisi içeren sözdiziminin eklenmesi önerilmiştir.

Türler arasına değişkenleri, fonksiyon parametrelerini, nesne elemanlarını, sınıf alanlarını, yazılan dizileri (“sayı[]”) tanımlarken kullanılabilecek “string”, “number” ve “boolean”ın eklenmesi önerilmektedir. Ayrıca birleştirilmiş türler (“string | number”) ve jenerikler için destek sağlanması da önerilmektedir. x: dize; function add(a: sayı, b: sayı) { return a + b; } arayüz Kişi { name: string; yaş:sayı; } fonksiyon foo (x: T) { dönüş x; } function foo(x: string | sayı): string | sayı { if (typeof x === sayı) { return x + 1 } else { return x + "!" } }

Kaynak: opennet.ru

Yorum ekle