Есть ли способ заставить интерфейс Typescript реализовать все ключи перечисления? Мой код выглядит следующим образом:
export enum Setting {
START_TIME = 'START_TIME_DB_KEY',
END_TIME = 'END_TIME_DB_KEY',
COOL_FEATURE = 'COOL_FEATURE_DB_KEY',
SOME_EXPIRY_SETTING = 'SOME_EXPIRY_DB_KEY',
}
export type RequireAllKeys = { [key in Setting]: any; };
export interface SettingsTypeMap extends RequireAllKeys {
[Setting.START_TIME]: number;
[Setting.END_TIME]: number;
[Setting.COOL_FEATURE]: boolean;
[Setting.SOME_EXPIRY_SETTING]: Date;
}
Я хочу, чтобы мой SettingsTypeMap
выдавал ошибку, если отсутствует один из ключей enum, например, если он выглядит следующим образом:
export interface SettingsTypeMap extends RequireAllKeys {
[Setting.START_TIME]: number;
}
это должно выдать ошибку, говорящую что-то вроде "интерфейс отсутствует свойства Setting.END_TIME, Setting.COOL_FEATURE, Setting.SOME_EXPIRY_SETTING
".