type Test<T extends string, V extends unknown> = { [Key: T]: V; } type Test<T extends string, V extends unknown> = { [Key in T]: V; } Del código anterior, T extiende la cadena, por qué T no se puede usar como tipo de clave y genera un error An index signature parameter type cannot be a literal type or generic type. Consider using a mapped object type instead. Pero si reemplaza Key: T con Key in T , funciona.
Creo que lo que está buscando en TypeScript se llama Tipo de utilidad - Registro
Por ejemplo:
type Test<T extends string, V extends unknown> = Record<T, V>;Documentos: https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type