具有某些已知但可选属性名和某些未知属性名的对象的Typescript接口
我想为一个对象创建一个接口,该对象具有具有特定名称的可选属性,但也接受任意命名的属性。这就是我试过的具有某些已知但可选属性名和某些未知属性名的对象的Typescript接口,typescript,typescript-typings,Typescript,Typescript Typings,我想为一个对象创建一个接口,该对象具有具有特定名称的可选属性,但也接受任意命名的属性。这就是我试过的 接口回调{ onTransition?():any;//可以有这个 [key:string]:()=>any;//或者这个。但不是两者都有 } 但是收到了这个错误: “(()=>any)| undefined”类型的属性“onbeforetransfition”不能分配给字符串索引类型“()=>any”。 我认识到,这在语义上与: 接口回调{ [键:字符串]:()=>任意; } 我想要这个功
接口回调{
onTransition?():any;//可以有这个
[key:string]:()=>any;//或者这个。但不是两者都有
}
但是收到了这个错误:
“(()=>any)| undefined”类型的属性“onbeforetransfition”不能分配给字符串索引类型“()=>any”。
我认识到,这在语义上与:
接口回调{
[键:字符串]:()=>任意;
}
我想要这个功能的原因是为了在定义回调时有编辑器帮助。有什么方法可以实现这一点吗?您可以使索引签名的返回类型返回
(()=>any)|未定义。无论如何,这可能是一个好主意,因为对对象的任何字符串访问都可能返回一个函数或未定义,并且无论如何都应该进行检查
interface CallBack {
onTransition?(): any;
[key: string]: (() => any) | undefined;
}