我正在尝试使用映射类型在枚举上:
export enum CurrencyType {
USD = "USD",
AUD = "AUD",
GBP = "GBP",
CAD = "CAD"
}
实现这种类型:
type Rates = {
AUD: number;
CAD: number;
GBP: number;
USD: number;
}
我想我可以做这样的事情:
type Rates = {
[P in keyof CurrencyType]: number;
};
但这会导致以下结果:
type Rates = {
toString: number;
charAt: number;
charCodeAt: number;
concat: number;
indexOf: number;
lastIndexOf: number;
localeCompare: number;
match: number;
replace: number;
//...
}
我尝试使用union literals
代替enum
,
export type CurrencyType = "USD" | "AUD" | "GBP" | "CAD";`
但它给出了相同的结果。
我唯一能开始工作的就是这样做:
type Rates = {
[P in typeof CurrencyType.AUD | CurrencyType.USD | CurrencyType.GBP | CurrencyType.CAD]: number;
};
但显然这违背了整个目的!
有办法做到这一点吗?
哇,它就在我面前。一如既往,我把它变得过于复杂化,并且没有彻底阅读文档。
type Rate = {
[P in CurrencyType]: number;
};
我会保留这个以防它对其他人有帮助
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)