interface A{
x: string;
y: string;
z: string;
// maybe later something more
}
interface B{
[K in keyof A]: Boolean;
}
为什么不起作用?我想创建类似的东西,但是要动态:
interface B{
x: Boolean;
y: Boolean;
z: Boolean;
// maybe later something more
}
答案 0 :(得分:1)
尝试以下操作:
interface A{
x: string;
y: string;
z: string;
// maybe later something more
}
type Bar = {
[key in keyof A]: boolean
}
interface B extends Bar { }
答案 1 :(得分:1)
请勿使用Boolean
,请使用boolean
。
映射类型也仅适用于type
而不适用于interface
,两者之间几乎没有什么区别,因此应该可以使用
type Bar = {
[key in keyof A]: boolean
}
此外,可以使用重新定义的映射类型Record
来编写此映射类型:
type Bar = Record<keyof A, boolean>