Почему тип возврата общей функции TypeScript выводится по -разному для инициализации переменной и назначения?Javascript

Форум по Javascript
Anonymous
Почему тип возврата общей функции TypeScript выводится по -разному для инициализации переменной и назначения?

Сообщение Anonymous »

Учитывая функцию TypeScript с общим типом, который используется для возвращаемого типа и имеет значение по умолчанию, тип возврата функции по -разному выводится при использовании возвращаемого значения функции для инициализации переменной и присвоения ее типичной переменной. < /p>
Вот упрощенный пример: < /p>
< /p>
.

Код: Выделить всё

function test(elementName:string):T{
// irrelevant, just returning something
return document.createElement(elementName) as unknown as T;
}

const e1 = test('div'); // fine, e1's inferred type is HTMLElement
let e2: HTMLElement | undefined;
e2 = test('div'); // Type error
В первом случае (e1) все хорошо, используется общий тип по умолчанию , и тип e1 выводится для htmlelement .
Во втором случае, тип кода retend wressed atement yates> yates> yates> code> yates hys> yates hise element> code> yates hyse> yte inse element> code> yates> code> yates hise element> yates hise element> yates> code> yates hise element> yates> codes htmlelement .
Почему поведение отличается? Почему общее значение по умолчанию не используется во втором случае? Ожидается?>

Подробнее здесь: https://stackoverflow.com/questions/795 ... rently-for

Вернуться в «Javascript»