Lets assume I have this enum:
export enum translationKeys {
resp_action_denied = "resp_action_denied",
resp_invalid_request = "resp_invalid_request",
}
I use this enum to extract unique string values from single source. Each of them maps to string resolution object:
const translations: {
[key: string]: RequiredTranslations;
} = {
resp_action_denied: {
ENG: "Foo bar",
GER: "Ich bin"
},
resp_invalid_request: {
ENG: "Baz",
GER: "Das"
},
Is there any way to force this object to include all enums as keys otherwise throw compile error?
You can just use the mapped type Record:
export enum translationKeys {
resp_action_denied = "resp_action_denied",
resp_invalid_request = "resp_invalid_request",
}
const translations: Record<translationKeys, { ENG: string, GER: string}> = {
resp_action_denied: {
ENG: "Foo bar",
GER: "Ich bin"
},
[translationKeys.resp_invalid_request]: { // can also use computed prop to reference the enum instead of the value.
ENG: "Baz",
GER: "Das"
}
};
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With