我有以下代码:
enum Foo {
a,
b,
c
}
type Bar = {
[key in keyof typeof Foo]: string;
}
const test: Bar = {
a: 'a',
b: 'b'
};
代码抱怨test
变量没有c
属性。
如何更改Bar
类型,以使枚举中的键是可选的?
答案 0 :(得分:1)
您可以使用Partial<T>
:
enum Foo {
a,
b,
c
}
type Bar = Partial<{
[key in keyof typeof Foo]: string;
}>
const test: Bar = {
a: 'a',
b: 'b'
};
或者,如@jcalz的评论中所述,将属性标记为optional:
enum Foo {
a,
b,
c
}
type Bar = {
[key in keyof typeof Foo]?: string;
}
const test: Bar = {
a: 'a',
b: 'b'
};
答案 1 :(得分:0)