如何让typescript停止抱怨函数上的静态成员?
我的例子很好地解释了这个问题 但基本上,我试图理解在下面的代码中向函数添加静态成员时如何编写有效的typescript如何让typescript停止抱怨函数上的静态成员?,typescript,Typescript,我的例子很好地解释了这个问题 但基本上,我试图理解在下面的代码中向函数添加静态成员时如何编写有效的typescript export const ZoomPanelControl = (props) => undefined; ZoomPanelControl.Item = (props) => undefined; 向函数添加属性最简单的方法是使用Object.assign()在单个语句中创建具有属性的函数: export const ZoomPanelControl = Obj
export const ZoomPanelControl = (props) => undefined;
ZoomPanelControl.Item = (props) => undefined;
向函数添加属性最简单的方法是使用
Object.assign()
在单个语句中创建具有属性的函数:
export const ZoomPanelControl = Object.assign(
(props) => undefined,
{ Item: (props) => undefined }
);
这将生成类型为((props:any)=>any)和{Item:(props:any)=>any;}
的对象,这就是您想要的:
ZoomPanelControl(123); // okay
ZoomPanelControl.Item(456); // okay
祝你好运 如果在定义函数和分配属性之间需要“间隙”,可以使用类型断言:
type Example = {
(props: any): any;
[key: string]: (props: any) => any;
}
const ZoomPanelControl = <Example>((props) => undefined);
//...
ZoomPanelControl.Item = (props) => undefined;
如果您不想允许“任何字符串作为密钥”,您可以将其限制为已知成员
如果您是一次性设置的,(它有效地提供了我上一个代码块中的类型,但是免费的)
const ZoomPanelControl: Example = <any>((props) => undefined);
type Example = {
(props: any): any;
Item: (props: any) => any;
}