说我有一个枚举
export enum status {
PENDING = 'pending',
SUCCESS = 'success',
FAIL = 'fail'
}
假设此枚举在多个地方使用(即,我不能仅将其替换为其他内容)。但是,我确实希望其他开发人员将来能从中添加/删除状态。
现在,我有一个对象obj,我希望如下所示
let obj = {
pending: 10,
success: 20,
fail: 0
}
我想为对象定义一个接口。我可以做类似的事情
interface objInterface = {
[key: string]: number;
}
但是,现在有人可以将obj设置为
obj = {
flip: 3333
}
我不希望这种情况发生,我只希望如上面的枚举中所定义的,等待,成功,失败。
理想情况下,我会做类似的事情
interface objInterface = {
[key: TransactionStatus] : number;
}
但这不起作用-它会出现此错误:
(参数)键:TransactionStatus索引签名参数类型 不能是联合类型。考虑使用映射的对象类型 ts。(1337)
做到这一点的最佳方法是什么?
我尝试过
type objType = {
[K in keyof typeof status]: number;
};
但是当我将鼠标悬停在它上面时,我看到它转换为
type objType = {
readOnly PENDING: number,
readOnly SUCCESS: number,
readOnly FAIL: number
}
答案 0 :(得分:1)
知道了
python3
dateparser