Saltar al contenido

    ↑↓ mover · ⏎ abrir · esc cerrar

    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']
      number
    • User['id' | 'name']
      string | number
    • User[keyof User]
      string | number | boolean

      Todos 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.