Operadores
T[K]
Lee el tipo de una propiedad de un tipo de objeto.
Qué es
La otra mitad de `keyof`. Toma un tipo de clave — no un *nombre* de clave, un tipo — y por eso se le puede dar una unión y responder con una unión. Ese único hecho hace que `T[keyof T]` signifique «todos los tipos de valor» sin iteración alguna.
Ejemplos
User['id']→numberUser['id' | 'name']
→string | numberUser[keyof User]→string | number | booleanTodos los tipos de valor a la vez, y la razón por la que casi nunca necesitas iterar para reunirlos.
Cada tipo resuelto de arriba lo imprimió TypeScript 5.9.3, no se escribió a mano.
Lo que no hace
- No usa notación con punto. `User.id` no es un tipo — el acceso indexado se escribe siempre con corchetes y un *tipo* de clave, así que `User["id"]` entre comillas.
- No tolera una clave que no pueda verificar. Indexar con un parámetro de tipo sin restricción es TS2536, y el arreglo es una restricción, no un cast.
Conclusión
`T[number]` sobre una tupla o un array te da el tipo de elemento, el mismo truco aplicado a un conjunto de claves numérico. Es el acceso indexado más útil que existe.