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");
しかし残念ながら、それは(「ないアサイナブル」エラーを与える)しません。私が行方不明になっていることがありますか、別のアプローチを見つけるべきでしょうか?