使用中的清理功能使用Typescript效果

时间:2020-05-22 04:24:37

标签: reactjs typescript react-hooks

我正在使用React Typescript,并且有以下警告:

warning Missing return type on function

这是我的代码:

 useEffect(() => {
    window.addEventListener('scroll', fetchAllFriends, { once: true })

    return () => {
      window.removeEventListener('scroll', fetchAllFriends)
    }
  }, [fetchAllFriends])

这是否意味着我们在useEffect内的每个清理函数上都需要一个return (): void

1 个答案:

答案 0 :(得分:2)

发生上述警告的原因可能是因为您已激活以下ESLint规则:

@typescript-eslint/explicit-function-return-type

要回答您的问题,可以将返回类型设置为void

或者,您可以关闭上述规则,因为您不必总是显式设置所有方法的返回类型,因为TypeScript通常可以根据方法返回的内容来推断返回类型。就我个人而言,我在大多数项目中都将其关闭。

getUser() {
  return service.getUser();
}

例如,在上述情况下,TypeScript应该能够推断出返回类型,而无需指定返回类型。


编辑:如@paolostyle在评论中所述,如果您希望保留规则,但要为场景禁用规则,则可以切换allowExpressions选项并将其设置为true

"@typescript-eslint/explicit-function-return-type": ["error", {
  "allowExpressions": true,
}]