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

来源:4-8 【讨论题】编写基础请求代码

qq_一袖清风_0

2021-04-08

老师你好,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>;
}
写回答

2回答

ustbhuangyi

2021-04-09

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

0
0

ustbhuangyi

2021-04-09

具体报错的内容是什么?

0
1
qq_一袖清风_0
你好,无法放截图;报错信息如下: Type 'Function' is not assignable to type '(event: ITouchEvent) => void'. Type 'Function' provides no match for the signature '(event: ITouchEvent): void'. 报错是在
click
的onClick上
2021-04-09
共1条回复

下一代前端开发语言 TypeScript从零重构axios

课程从零开始重构功能完整的JS库,是学习造轮子的不二之选!

2629 学习 · 877 问题

查看课程