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