[英]Access class Type in static function typescript
我在打字稿中有以下課程:
class Parent {
static get<T extends Parent>(): T {}
}
函數get
應該返回並且類型<T extends Parent>
實例<T extends Parent>
。 例如,如果我有一個名為NewParent
的類,該類擴展了Parent
類,則get函數應該返回一個NewParent
類型的對象。 如何消除此占位符T
並將返回類型分配為重寫的類?
從本文獲取有關在運行時獲取類名的以下答案。
您可以解壓縮構造函數以查找實例名稱,該名稱可與繼承一起使用,如下所示:
class Describer {
static getName(inputClass) {
var funcNameRegex = /function (.{1,})\(/;
var results = (funcNameRegex).exec((<any> inputClass).constructor.toString());
return (results && results.length > 1) ? results[1] : "";
}
}
class Example {
}
class AnotherClass extends Example {
}
var x = new Example();
var y = new AnotherClass();
alert(Describer.getName(x)); // Example
alert(Describer.getName(y)); // AnotherClass
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.