javascript - Delvise nøkler av unionstype som nøkkel på et objekt i typescript


Jeg vil bruke nøklene til unionstypen som nøkkel i objektet i TypeScript.

type EnumType = 'a1' | 'a2'

const object:{[key in EnumType]: string}= {
 a1: 'test'
}

I dette tilfellet må jeg legge til selv a2 som en nøkkel i objektet. Finnes det en måte å gjøre dette valgfritt på?

Lekeplass

Svar #1

Bare legg til et spørsmålstegn slik:

type EnumType = 'a1' | 'a2'

const object:{[key in EnumType]?: string}= {
 a1: 'test'
}

Definisjonen av object med din nåværende kode:

const object: {
    a1: string;
    a2: string;
}

Blir :

const object: {
    a1?: string | undefined;
    a2?: string | undefined;
}

Tillater at hver nøkkel er valgfri.

Svar #2

vær så snill å bruk verktøytyper

type EnumType = "a1" | "a2";

const object: Partial<Record<EnumType, string>> = {
  a1: "test",
};

Relaterte artikler