Phoen1xx
@Phoen1xx

Как вернуть ключ enum того-же типа, что и keyof typeof без использования as?

Здравствуйте. Подскажите пожалуйста, как мне вернуть ключ от enum, чтобы он соответствовал типу, созданному при помощи keyof typeof:
enum DataInfo{
    MyData = 10,
    OtherData = 20
}

type DataKeys = keyof typeof DataInfo;

function test(): DataKeys {
    return DataInfo[DataInfo.MyData];
}

Данный код возвращает ошибку:
Type 'string' is not assignable to type '"MyData" | "OtherData"'
В моем примере, получается return "MyData"; валидный, а ключи от DataInfo нет.
Но DataInfo[...] это же не просто строка, это его ключ, который всегда будет совпадать с типом DataKeys.
Как обьяснить это ts, без использования as?
  • Вопрос задан
  • 326 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы