В Typescript у меня есть следующее перечисление:
enum User { Bob = "Bob", Sally = "Sally" }
Я хотел бы убедиться, что новый тип определяет логическое значение для каждого значения перечисления:
type UserActiveMap {
User.Bob: boolean
User.Sally: boolean
}
Однако я не хочу перечислять каждое значение перечисления.
Я знаю, что могу использовать keyof typeof
, но я не уверен, как определить тип, чтобы обеспечить такое поведение:
type UserActiveMap {
keyof typeof User: boolean
} // wrong
Практическая реализация, к которой я стремлюсь:
const rightMap: UserActiveMap = { User.Bob = true, User.Sally = false } // valid
const wrongMap: UserActiveMap = { User.Bob = false } // invalid - missing Sally
Есть какой-нибудь совет?