Typescript ile Sınıf tip onay

oy
107

Ben çok heyecanlıyım typescript , bu yüzden onunla oynamaya başladı. Bir Actionscript geliştirici olarak, daha az sert JavaScript yapar.

Ancak, Actionscript o kullanarak çalışma zamanında türünü kontrol etmek mümkündür is operatörünü :

var mySprite:Sprite = new Sprite(); 
trace(mySprite is Sprite); // true 
trace(mySprite is DisplayObject);// true 
trace(mySprite is IEventDispatcher); // true

Bir değişken (genişletir ya) typescript ile belli sınıf veya arayüz olup olmadığını algılamak mümkün mü? sınıflar / arayüzleri üzerinde çalışırken dil özellikleri bu konuda bir şey bulamadı, bu olmalıdır.


Güncelleme: Birkaç yıl sonra. Çok hızlı typescript düştü ve kullanmaya başlamak Haxe mükemmel JavaScript derler ve sınıfları çalışır gerçek tip-denetlemesi yapar arayüzler Ayrıca ölü kod çıkarılmasını, daha iyi çeteleler, soyut türlerini ve zaman fonksiyonları (makro) derlemek vardır, ayrıca derler vs. tek bir dosyada hiçbir kompleks paket inşa sistemi gereklidir.

Oluştur 08/10/2012 saat 21:47
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
142

4.19.4 Operatör örneğine

instanceofOperatör tip herhangi bir nesne türü veya bir tip parametre tipinde olduğu sol işlenen gerektirir ve sağ işlenen tip herhangi biri veya 'Fonksiyonu' arayüz tipi bir alt-tipine ait olduğunu belirledik. Sonuç her zaman Boole ilkel türde.

Yani kullanabilirsiniz

mySprite instanceof Sprite;

Bu operatör ActionScript'te de ama artık orada kullanılmamalıdır unutmayın:

ActionScript 3.0 için yeni olan is operatörü, bir değişkenin veya ifadenin belirli bir veri türünün üyesi olup olmadığını test etmenizi sağlar. Önceki ActionScript sürümlerinde, instanceof operatörü bu işlevselliği sağlamıştır ancak ActionScript 3.0'da Operatör örneğine veri türü üyeliğini test etmek için kullanılmamalıdır. yalnızca y varlığı için x prototip zincirini kontrol ekspresyon InstanceOf x çünkü operatör yerine elle tür denetleme için Operatör örneğinin kullanılması gereken (ve ActionScript 3.0'da, prototip zinciri tam bir resim sağlamaz kalıtım hiyerarşisi).

Typescript en instanceofhisseleri aynı sorunları. O gelişiminde hala bir dildir olarak ben böyle tesisin bir öneri belirtmek önerilir.

Ayrıca bakınız:

Cevap 08/10/2012 saat 21:54
kaynak kullanıcı

oy
8

Typescript çalışma zamanında bir değişkenin türünü değerlendirmenin bir yolu var. Bir döndüren bir doğrulama işlevini ekleyebilir tip yüklemi . Yani if ifadesi içinde bu işlevi çağırmak ve bu blok içindeki tüm kod senin düşündüğün türü olarak kullanmak güvenli olduğundan emin olabilir.

Typescript dokümanlardan Örnek:

function isFish(pet: Fish | Bird): pet is Fish {
   return (<Fish>pet).swim !== undefined;
}

// Both calls to 'swim' and 'fly' are now okay.
if (isFish(pet)) {
  pet.swim();
}
else {
  pet.fly();
}

: Daha fazla gör https://www.typescriptlang.org/docs/handbook/advanced-types.html

Cevap 21/11/2016 saat 10:42
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more