Typecript Enum access возвращает тип 'string', а не keyof typeof Enum, но ожидает ключ typeof Enum вместо 'string - PullRequest
1 голос
/ 28 марта 2020

минимальный пример проблемы:

enum EXAMPLE {
    FIRST,
    SECOND,
}

EXAMPLE[EXAMPLE[EXAMPLE.FIRST]]; // Error

Детская площадка

в соответствии с этим ответом: { ссылка }, если я неправильно его читаю , это должно быть правильно?

Исходя из скомпилированного javascript, эта ошибка типа не имеет смысла для меня, и исходя из того, что я предположил, чтобы быть внутренним типом перечисления, это также не имеет смысла .

Почему типы enum ведут себя непоследовательно по отношению к своим ключам? (т.е. почему они кажутся напечатанными как что-то вроде Record<'FIRST'|'SECOND',0|1> & Record<0|1,string>, а не Record<'FIRST'|'SECOND',0|1> & Record<0|1,'FIRST'|'SECOND'>)

Я могу создать объект псевдо-enum, который ведет себя так, как я хочу, но я бы предпочел использовать существующие языковые функции и использовать их преимущества (краткость, осмысленность и т. д. c.).

Есть ли исправление для этого или что-то, чего мне не хватает?

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