El operador de tipo keyof

El operador de tipo keyof

El operador keyof toma un tipo de objeto y produce una cadena o unión literal numérica de sus claves. El siguiente tipo P es el mismo tipo que type P = "x" | "y":

Prueba este código ↗

type Point = { x: number; y: number };
type P = keyof Point;
    
type P = keyof Point

Si el tipo tiene una firma de índice string o number, keyof devolverá esos tipos en su lugar:

Prueba este código ↗

type Arrayish = { [n: number]: unknown };
type A = keyof Arrayish;
    
type A = number
 
type Mapish = { [k: string]: boolean };
type M = keyof Mapish;
    
type M = string | number

Ten en cuenta que en este ejemplo, M es string | number: esto se debe a que las claves de objetos de JavaScript siempre se convierten en una cadena, por lo que obj[0] es siempre lo mismo que obj["0"].

Los tipos keyof se vuelven especialmente útiles cuando se combinan con tipos mapeados, sobre los cuales aprenderemos más adelante.

Última actualización