1
TypeScript具有方便的屬性,即文字字符串可以是泛型函數的類型參數。因此,你可以做TypeScript文字類型參數不傳播返回
let a:HTMLAnchorElement = document.createElement("a");
和編譯器知道它是正確的(因爲超載createElement(tagName:"a"):HTMLAnchorElement
的)。
我曾希望這將是非常聰明,它也明白以下幾點:
function createEl<T extends string>(type:T) {
let el = document.createElement(type);
// ...stuff...
return el;
}
let a:HTMLAnchorElement = createEl("a");
但不幸的是,它並沒有(提供了一個「不可轉讓」的錯誤)。有什麼我錯過了,可以使它如此,或者我應該找到另一種方法?