Böyle bir şey kullanamazsınız?Typescript jenerikleri, jenerikleri uygulamak için tip silme kullanır mı?
class Helpers
{
static ObjectAs<T>(val: any): T {
if (!(val instanceof T)) {
return null;
}
return <T>val;
}
}
Genel bildirimin temel türünü almak için herhangi bir geçici çözüm var mı?
Güncelleme 1: Ryan Cavanaugh belirtildiği gibi derlenmiş zaman
, bütün tip sistemi daha eşdeğer ilaç Java'nın uygulanması gibi silinir. Ben inanıyorum. Derlenmiş kodda tür bilgilerini korumak için Generics'in Net uygulaması Java'dan daha iyidir. Ancak, yardımcı olamıyorum ama merak ediyorum, neden genel çalışma türleri ve genel tür parametreleri için tam çalışma zamanı içgörüsüne izin vermek mümkün değil. Neden TypeScript tasarımcıları çalışma zamanında tüm jenerik tip bilgilerini kaldırmaya karar verdi?
şu typescript kodu:
function As<T>(n: any): T {
if (n instanceof T) {
return n;
} else {
return null;
}
}
var obj: Object = 1;
var x = As<number>(obj);
bu JavaScript koduna çevrilebilinirler:
function As(n, T) {
if (n instanceof T) {
return n;
} else {
return null;
}
}
var obj = 1;
var x = As(obj, Number);
js kodu ile zamanında ve uyumluluk en türü bilgilerini koruma!
Güncelleme 2: Ben typescript insanlar tür sistemi tamamen silinir https://typescript.codeplex.com/discussions/550262
... o SO stile JavaScript derleyici tarafından yayılan önce tüm tip bilgiler silinir şartname durumlarının –
Page 2 kapalı doesnt umuduyla. Bu bilgiler ışığında, en iyi tahminim, çalışma ortamınızın çalışma ortamı içinde anlamsız olacağını söyleyebilir. En iyi tavsiyem, http://typescript.codeplex.com/discussions/topics/5488/language-specification: http://typescript.codeplex.com/discussions/topics/5488/deguage-specification adresindeki forumlarında bir gönderi oluşturmak olacaktır. Henüz değilse, onları desteklemeyi düşünebilirsin. –
@ErikNedwidek Zaten üzerinde :) –