Operadores
keyof
La unión de las claves de un tipo.
Qué es
Uno de los dos operadores con los que se construye toda transformación de objetos — keyof saca las claves, el acceso indexado lee los valores. El resultado es una unión de tipos literales sin orden particular, y deliberadamente no hay forma de pedir «la primera clave»: el orden no es algo que un tipo de objeto garantice.
Ejemplos
keyof User→keyof Userkeyof { a: 1 }→"a"keyof string[]→keyof string[]Un array tiene como claves todos los métodos de array, más
number. Rara vez es lo que querías —T[number]sí lo es.
Cada tipo resuelto de arriba lo imprimió TypeScript 6.0.3, no se escribió a mano.
Lo que no hace
- No te da una lista ordenada. El orden de las claves no forma parte del tipo, así que nada puede depender de él.
- No omite miembros heredados ni integrados.
keyofde un array o de una instancia de clase incluye todo lo que el tipo declara, métodos incluidos.
Conclusión
Usa keyof T cuando quieras los nombres y T[keyof T] cuando quieras los valores. Casi todo tipo mapeado empieza por uno de esos dos.

