Ошибка Typescript при использовании универсального типа, расширяющего ассоциативный массив - PullRequest
2 голосов
/ 28 октября 2019

Если у меня есть этот код:

interface IAssociativeArray {
    [key: string]: any;
}

function Do<T extends IAssociativeArray>(p: T) {
    p.someProp = "someValue";
}

function Do2(p: IAssociativeArray) {
    p.someProp = "someValue";
}

Do завершается с ошибкой: Свойство 'someProp' не существует для типа 'T'.ts (2339) ?

Но Do2 нет. Почему это?

PS. Я использую Typescript 3.6.3, он работает нормально в версиях до 3.5.1

1 Ответ

0 голосов
/ 28 октября 2019

Похоже, это было введено с целью избежать необоснованного сужения. Подробнее

...