typer - Typescript, begrens nøkler til array-elementer


Redigert: Endre id-typen

Jeg har et array med de følgende verdiene

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

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

Jeg vil gjerne angi den nåværende any-typen til objektet mitt for å begrense det til verdiene i ids-arrayen min.

Jeg prøvde med oppslagstype, men jeg lyktes ikke…

Noen idé?

Hilsen

Svar #1

Du kan bruke den Record mappede typen. Du må også bruke en const påstand for å fange de bokstavelige typene til array-elementene:

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

Relaterte artikler