4
這裏是我的函數的定義:有沒有辦法在泛型(<T>)函數/類(Typescript)中獲取泛型類型的名稱?
getData<T extends Entity>() { }
我目前不接受任何參數。有沒有辦法讓我在運行時將T轉換爲類型的字符串名稱?也許使用typeof?
我來自C#世界,你會使用反射。不過,我是Javascript新手,不確定相應的內容。
感謝。
這裏是我的函數的定義:有沒有辦法在泛型(<T>)函數/類(Typescript)中獲取泛型類型的名稱?
getData<T extends Entity>() { }
我目前不接受任何參數。有沒有辦法讓我在運行時將T轉換爲類型的字符串名稱?也許使用typeof?
我來自C#世界,你會使用反射。不過,我是Javascript新手,不確定相應的內容。
感謝。
類型在編譯期間被擦除,所以沒有。你應該從未曾經有沒有在辯論中的位置使用其類型參數的通用函數。
假設在班getData
的作品,你可以寫這樣的:
class NotSureThisIsReallyAGoodIdea {
static getData<T>(cls: new(...args: any[]) => T): T {
/* magic happens */
const url = 'http://example.com/' + cls['name'];
return <T>undefined;
}
}
class SomeShape {
x: number;
}
let s = NotSureThisIsReallyAGoodIdea.getData(SomeShape);
s.x; // OK
這對我有用,謝謝。 getData
如果沒有參數那麼你爲什麼需要有類型? –
我需要編寫一個url字符串,其中的一部分是類T的名稱。我將返回一個泛型類型的對象:例如,結果。 –
也許可以重寫'toString()'方法嗎? – kemsky