打字稿。如何获取枚举项数据作为类型

时间:2020-09-21 12:58:56

标签: typescript

我有一个枚举类型,例如Currency。我无法更改它,因为它自动建立在graphql模式上。我想将其用于数据,但是我不知道该怎么办。

enum Currency {
  rub = 'RUB',
  usd = 'USD',
  eur = 'EUR',
}

const data: { currency: Currency[keyof typeof Currency] } = {
  currency: 'RUB',
};

错误

TS2339: Property 'eur' does not exist on type 'Currency'.
TS2339: Property 'rub' does not exist on type 'Currency'.
TS2339: Property 'usd' does not exist on type 'Currency'.

1 个答案:

答案 0 :(得分:1)

我不确定是否可以完全按照自己的意愿去做,但是最有可能的是,您想做这样的事情:

const data: { currency: Currency } = {
  currency: Currency.rub,
};

这是通常使用枚举的方式(通过在获取其值之一时始终显式引用枚举)。