Почему тип возврата общей функции 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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