我正在使用 React Typescript,但出现以下警告:
警告函数缺少返回类型
这是我的代码:
useEffect(() => {
window.addEventListener('scroll', fetchAllFriends, { once: true })
return () => {
window.removeEventListener('scroll', fetchAllFriends)
}
}, [fetchAllFriends])
这是否意味着我们需要在 useEffect 中的每个清理函数上使用 return (): void
?
最佳答案
出现上述警告的原因可能是因为您激活了以下 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,
}]
关于reactjs - 使用 Typescript 清理 useEffect 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61947850/