TypeScript 5.0 programlama dili, dekoratörleri yeniden düzenler

Adanali

Member


  1. TypeScript 5.0 programlama dili, dekoratörleri yeniden düzenler

Microsoft, TypeScript 5.0’ı ilk beta sürümünden yaklaşık iki ay sonra planlandığı gibi yayınladı. Kararlı sürüm, dekoratörler için ECMAScript planlarına dayanan yeni bir konsept getiriyor. Ayrıca, tür çıkarımını iyileştirmek için parametreler sabit olarak bildirilebilir.


TypeScript 5.0 yeni bir ana sürüm değildir – ekip, programlama dili için ondalık sayımı kullanır ve her özellik sürümü için ondalık basamağı bir artırır. Sonuç olarak, TypeScript 5.0, tıpkı TypeScript 4.0 2020’nin 3.9 sürümünü takip etmesi gibi, 4.9 sürümünü takip eder.


taze dekoratörler


TypeScript önceden dekoratörleri derleyici bayrağını kullanan deneysel bir uygulama olarak biliyordu. --experimentalDecorators gerekli. Dekoratörler, sınıflar veya bunların işlevleri ve özellikleri üzerinde çağrılan işlevlerdir. Öğeleri değiştirebilir, başlatabilir veya gelişmiş erişim sağlayabilirsiniz. Geçerli sürüm, entegrasyonu tersine çevirir ve ilişkili ECMAScript teklifinin, yani JavaScript için planlanan dekoratör standardının mevcut durumunu temel alır.

Günlük kullanım durumu


ECMAScript önerisinde de bulunan tipik bir örnek, bir yöntemi, hataları izlemek için her çağrıldığında konsola bir mesaj döndüren genel bir yöntemle değiştirmektir. Bunun bir örneği TypeScript blogunda bulunabilir. Aşağıdaki kod, TypeChecking’siz basit değişkeni gösterir:


function loggedMethod(originalMethod: any, _context: any) {

function replacementMethod(this: any, ...args: any[]) {
console.log("LOG: Entering method.")
const result = originalMethod.call(this, ...args);
console.log("LOG: Exiting method.")
return result;
}

return replacementMethod;
}


ile bir @loggedMethod Dekore edilmiş yöntem bunun yerine bu işlevi kullanır. Önce “LOG: giriş yöntemi” verir. daha sonra orijinal yöntemi yürütür (originalMethod.call) “LOG: Çıkış yöntemi” olarak değiştirin. konsola yaz.


En azından geçici olarak, TypeScript hem yeni hem de eski uygulamalara izin verecektir. İkincisi, derleyici bayrağı --experimentalDecorators ayarlandı. Aksi takdirde, eski uygulamadan farklı olarak parametre dekoratörlerine izin vermeyen ve meta verileri kullanmayan yeni dekoratörler uygulanır. --emitDecoratorMetadata harcayabilir.

Beta ile karşılaştırıldığında, ekip dekoratörlere küçük bir şey ekledi: ECMAScript teklifinde olduğu gibi bir dekoratör önde veya arkada olabilir. export ayakta. Her iki pozisyona da izin verilir, ancak karışık görünmemelidir:


// vor export ist erlaubt:
@register export default class Foo {
// ...
}

// hinter export ist erlaubt:
export default @register class Bar {
// ...
}

// vor UND hinter export ist nicht erlaubt:
@before export @after class Bar {
// ...
}


Sabit parametre bildirimi sayesinde daha doğru tip çıkarımı


TypeScript 5.0’daki başka bir ekleme, tür çıkarımını iyileştirmeyi amaçlamaktadır: parametreler sabit olarak bildirilebilir. Öyleyse anahtar kelimeyi iyileştir const İçinde


type HasNames = { names: readonly string[] };
function getNamesExactly<const T extends HasNames>(arg: T):
T["names"] { ... }


TypeScript’in türü tam olarak kullanması ve olduğu gibi kullanmaması için string[] tanır. Sabit, değeri değil, yalnızca türü ifade eder. değişmez olduğunu beyan etmek readonly gerekli.

Yapılandırma dosyası, enum ve JSDoc


Bunlara ek olarak, mevcut sürümde dikkat çeken başka yenilikler de var: TypeScript 5.0’dan bu yana, projeler için yapılandırma dosyaları birden fazla temelde kullanılabiliyor. extends ve numaralandırmalar artık daha önce olduğu gibi sayısal sabitler yerine her zaman birleştirme numaralandırmalarıdır.

TypeScript 5.0, JSDoc ile etkileşim içinde iki yeni ayrım bilir: @overload aşırı yüklenmiş işlevler için e @satisfies TypeScript 4.9’da sunulan operatör için satisfies.

TypeScript 5.0’daki ek yeni özellikler, TypeScript blogunda bulunabilir. Programlama dili ile kullanılabilir npm install typescript NuGet aracılığıyla kurun veya indirin.


(rm)



Haberin Sonu
 
Üst