Búsqueda de sitios web

tipos - Typescript, restringir claves a elementos de un array


Editado: Cambiar el tipo de ids

Tengo un arreglo con los siguientes valores

const ids: number[] = [45, 56];

const obj: any = {
  45: "HELLO",
  56: "WORLD",
};

Me gustaría escribir el tipo any actual de mi objeto para restringirlo a los valores de mi arreglo ids.

Intenté con el tipo de búsqueda, pero no tuve éxito…

¿Alguna idea?

Saludos

Respuesta #1

Puedes usar el tipo mapeado Record. También necesitas usar una aserción const para capturar los tipos literales de los elementos del arreglo:

const ids = [45, 56] as const;

const obj: Record<typeof ids[number], string> = {
    45: "HELLO",
    56: "WORLD",
};
const obj2: Record<typeof ids[number], string> = {
    45: "HELLO",
    56: "WORLD",
    57: "WORLD",  // error
};

Artículos relacionados