#typescript #typescript-typings #typescript-generics
Вопрос:
type foo = { asd:"" } interface FOOSlt;T = keyof foogt; extends foo { copy(key: T): foo[T]// error }
Type 'T' cannot be used to index type 'foo'.
Как я могу сообщить typescript, что это T можно использовать в качестве ключа для этого типа?
Ответ №1:
Ваш универсальный тип имеет значение по умолчанию keyof foo
, но кто-то все равно может создать его экземпляр с любым несвязанным типом: и т.д. FOOSlt;stringgt;, FOOSlt;unknowngt;
Попробуйте наложить ограничение на T
:
interface FOOSlt;T extends keyof foo= keyof foogt; extends foo { copy(key: T): foo[T]// error }