You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

TypeScript报错:handleListKeyDown缺少返回类型注解,应指定何种返回类型?

解决TypeScript中React键盘事件处理函数的返回类型问题

这个问题其实很容易解决,你只需要给handleListKeyDown指定void作为返回类型就可以了!

原因很直白:你的这个函数是React的键盘事件处理函数,它不需要返回任何值——你里面的逻辑只是调用event.preventDefault()setOpen(false),没有任何return语句。TypeScript之所以抛出错误,是因为它无法自动推断出这个函数的返回类型,只能默认隐式设为any,而在严格类型检查模式下,这种隐式any是不被允许的。

修改后的代码如下:

const handleListKeyDown = useCallback((event: React.KeyboardEvent): void => {
  if (event.key === 'Tab') {
    event.preventDefault();
    setOpen(false);
  }
}, [open]);

顺便补充个小知识点:所有React的事件处理函数(比如点击、键盘、输入类事件的处理函数),标准返回类型都是void,因为React并不依赖事件处理函数的返回值来执行后续逻辑,所以统一用void就不会再遇到这类类型报错啦。

内容的提问来源于stack exchange,提问作者Tomasz Waszczyk

火山引擎 最新活动