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"
:
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:
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