gpt4 book ai didi

typescript - 将枚举映射到类型

转载 作者:行者123 更新时间:2023-12-03 23:37:20 25 4
gpt4 key购买 nike

我正在尝试使用 mapped type在枚举上:

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;
};

我会留下这个以防它帮助别人

关于typescript - 将枚举映射到类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48914818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com