我有界面:
export interface Config {
buttons: {
close?: boolean;
accept?: boolean;
}
...
}
当我将上述接口导入另一个模块并执行此操作时,我收到错误:
buttons: Config.buttons = {};
“Config”仅指一种类型,但是被用作命名空间
我稍后在代码中使用buttons
变量:
onConfig = (config: Config) => {
Object.assign(this.buttons, config.buttons);
}
关于如何使其发挥作用的任何建议?
当我这样做时,它运作正常:
buttons: any = {};
但这是一个好习惯吗?
答案 0 :(得分:1)
我认为typeof
可能会在这里工作,但事实并非如此。要解决此问题,您可以将按钮移动到其自己的界面中:
export interface Buttons { // or ButtonsConfig or whatever
close?: boolean;
accept?: boolean;
}
export interface Config {
buttons: Buttons;
...
}
然后将其用作类似属性的类型:
buttons: Buttons = {};