我试图在枚举上使用映射类型:
export enum CurrencyType {
USD = "USD",
AUD = "AUD",
GBP = "GBP",
CAD = "CAD"
}
Run Code Online (Sandbox Code Playgroud)
实现这种类型:
type Rates = {
AUD: number;
CAD: number;
GBP: number;
USD: number;
}
Run Code Online (Sandbox Code Playgroud)
我以为我可以做这样的事情:
type Rates = {
[P in keyof CurrencyType]: number;
};
Run Code Online (Sandbox Code Playgroud)
但是结果是这样的:
type Rates = {
toString: number;
charAt: number;
charCodeAt: number;
concat: number;
indexOf: number;
lastIndexOf: number;
localeCompare: number;
match: number;
replace: number;
//...
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用union literals
替代enum
,
export type CurrencyType = …
Run Code Online (Sandbox Code Playgroud)