I have a React component; for example:
export class Component1 extends Component<IProps, IState> {
它接受的道具之一是一个函数:
export interface IProps {
a: number,
b: number,
onMouseClick: () => void
}
因此,当我使用这个组件时,我可以像这样做:
<Component1 onMouseClick={() => this.DoStuff()} a={1} b={2} />
但是如果我想传递一个空函数,使得鼠标点击时不执行任何操作,该怎么办呢?例如:
<Component1 onMouseClick={() => void} a={1} b={2} />
Typescript告诉我它期望一个表达式。我可以声明一个空函数,像这样:
<Component1 onMouseClick={() => function(){}} a={1} b={2} />
有没有更好的方法来声明一个空函数?我也有点不清楚为什么在IProps定义中可以将属性onMouseClick
分配给void,但在使用组件时却不能。
() => {}
?() => void
是一个空函数的类型,因此它在接口中使用,而不是实际的函数定义。 - jonrsharpe