Используйте const enum ключи (не значения) в качестве свойств интерфейса - PullRequest
1 голос
/ 16 марта 2020

В следующем коде переменная x имеет свойства a и z, но я хочу, чтобы она имела a и b. Как я могу express, что в машинописи?

const enum CE {
    a = "a",
    b = "z",
}

declare var x: Record<CE, any> // has 'a' and 'z'

1 Ответ

1 голос
/ 16 марта 2020

Enum сам по себе является переменной, поэтому вы можете запросить его тип с помощью typeof CE, а затем получить ключи с помощью keyof:

declare var x: Record<keyof typeof CE, any> // Record<"a" | "b", any>

Playground

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...