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
};
