如何从数组创建打字稿枚举?

问题描述 投票:0回答:1

我有支持的货币列表

export const CURRENCIES = ['EUR', 'CHF', 'GBP', 'USD', 'DKK'];

这是在 npm 库中定义的。

我有一个 TS 项目,其中我使用货币代码作为货币相关组件。这是当前的实现。

export Interface InputProps extends React.InputHTMLAttributes<HTMLInputElement>{
currency?: 'USD' | 'EUR' | 'GBP'; // current implementation
}

const CurrencyInput = ({ currency = 'EUR'}:InputProps) => {
....
}

但是,在当前实施中,货币道具仅限于“美元”、“欧元”和“英镑”。我想让货币道具动态化,这样它就可以接受 CURRENCIES 数组中的任何货币代码。我更喜欢将支持的货币保留在 npm 库中,这样如果将来我必须更新支持的货币,我只需要在一个地方更新,因为这个货币常量正在多个地方使用。

javascript reactjs typescript enums
1个回答
0
投票

如果您使用

CURRENCIES 断言
声明您的 
const
数组,您可以执行以下操作:

export const CURRENCIES = ['EUR', 'CHF', 'GBP', 'USD', 'DKK'] as const;

type Currency = typeof CURRENCIES[number];
// type Currency = "EUR" | "CHF" | "GBP" | "USD" | "DKK"
© www.soinside.com 2019 - 2024. All rights reserved.