У меня есть код ниже. В этой точке list[0][prop] = source.id; я получаю сообщение об ошибке Тип 'номер' нельзя назначить типу 'T [K]' . Я не понимаю почему. По моему мнению, это должно работать, потому что я объявляю T как объект со строковым индексатором и значениями типа any.
list[0][prop] = source.id;
T
any
Кто-нибудь знает, что я делаю неправильно?
class Test { private setValue<T extends { [K: string]: any }, K extends keyof T>(list: T[], prop: K) { const source = { id: 123 }; list[0][prop] = source.id; } }
Ссылка на детскую площадку: https://www.typescriptlang.org/play/index.html?ssl=1&ssc=1&pln=2&pc=22#code / MYGwhgzhAEAqCmEAu0DeAod1vQA4CcBLANzCXmgniQDUwQBXeAHlmngA9yA7AExlTQA2gGkAXJSRFuAcwC6EsNwCe0AL4AaaCPZd4fGAGt4ygPYAzOAD4AFCELIJsIXK0FTuCSICUaLDgDgU25kSlMGfGAKAF40aEJeCQBGACYAZnUAbn8A7HtkIQAGOSF3XDloWIhwyPgAOgTsgLVMFqA