簡體   English   中英

訪問類靜態函數打字稿中的Type

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM