Saltar al contenido

    ↑↓ mover · ⏎ abrir · esc cerrar

    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 User
    • keyof { 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 5.9.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. `keyof` de 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.