ТипScript имеет удобное свойство, что строка-литерал может быть параметром типа для общей функции. Таким образом, вы можете сделатьПараметр типа литерала 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");
Но, к сожалению, это не (дает «не назначаемой» ошибка). Есть ли что-то, что мне не хватает, что может это сделать, или мне нужно найти другой подход?