请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

interface中包含可选属性,且是Function类型的;在dom中怎么绑定函数?

老师你好,ts刚开始用,还不太熟悉,如下场景,该怎么实现上述的功能呢?

interface IProps {
  canGoBack?: boolean
  title?: string
  tapAction?: Function			// 传入的方法
  hasBackgroundImage?: boolean,
  children: any
}

const App = (props: IProps) => {
	const { tapAction } = props;
	
	// 默认方法
	const goBack = () => {};
	
	// 当前写法是报错的,这里该怎么写?
	return <div onClick={tapAction ?? goBack}>click</div>;
}

正在回答 回答被采纳积分+3

2回答

ustbhuangyi 2021-04-09 15:54:08

所以你的 tapAction 应该定义成具体的 (event: ITouchEvent<any>): void 类型才对吧

0 回复 有任何疑惑可以回复我~
ustbhuangyi 2021-04-09 11:46:03

具体报错的内容是什么?

0 回复 有任何疑惑可以回复我~
  • 提问者 qq_一袖清风_0 #1
    你好,无法放截图;报错信息如下:
    Type 'Function' is not assignable to type '(event: ITouchEvent<any>) => void'.
      Type 'Function' provides no match for the signature '(event: ITouchEvent<any>): void'.
    
    报错是在 <div onClick={tapAction ?? goBack}>click</div> 的onClick上
    回复 有任何疑惑可以回复我~ 2021-04-09 14:50:43
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信