admin管理员组文章数量:1200385
I a stateful React component in my Typescript project. I lint it with ESLint using @typescript-eslint/parser
and @typescript-eslint/eslint-plugin
. I've enabled the rule @typescript-eslint/explicit-function-return-type
.
My component looks similar to this:
interface Props = {
name: string;
}
interface State = {
score: number
}
class Person extends Component<Props, State> {
state = {
score: 2,
};
componentDidMount() {
...
}
render() {
...
}
}
In the above component I get the ESLint error on the componentDidMount
and render
methods:
Missing return type on function - @typescript-eslint/explicit-function-return-type
I quite like the lint rule in general, but surely I don't have to declare a return type for all these React methods. I have @types/react
and @types/react-dom
installed, so aren't these return types covered already?
I a stateful React component in my Typescript project. I lint it with ESLint using @typescript-eslint/parser
and @typescript-eslint/eslint-plugin
. I've enabled the rule @typescript-eslint/explicit-function-return-type
.
My component looks similar to this:
interface Props = {
name: string;
}
interface State = {
score: number
}
class Person extends Component<Props, State> {
state = {
score: 2,
};
componentDidMount() {
...
}
render() {
...
}
}
In the above component I get the ESLint error on the componentDidMount
and render
methods:
Missing return type on function - @typescript-eslint/explicit-function-return-type
I quite like the lint rule in general, but surely I don't have to declare a return type for all these React methods. I have @types/react
and @types/react-dom
installed, so aren't these return types covered already?
3 Answers
Reset to default 13Try writing the return type for render function as
render(): JSX.Element {
// render code
}
This works for me!
I just got it working by adding the rule into .eslintrc.json
with
{ "allowTypedFunctionExpressions": true }
.eslintrc.json
{
"parser": "@typescript-eslint/parser",
"extends": ["plugin:@typescript-eslint/recommended"],
"plugins": ["@typescript-eslint"],
"rules": {
"@typescript-eslint/explicit-function-return-type": [
"error",
{ "allowTypedFunctionExpressions": true }
]
}
}
versions
"@typescript-eslint/eslint-plugin": "^1.10.2",
"@typescript-eslint/parser": "^1.10.2",
"eslint": "^6.0.0",
I could be wrong here as I have not personally used @typescript-eslint/explicit-function-return-type
but it's name sounds as if you need a return
in every single function written, including the lifecycle methods. Remember that the ESLint and React are not the same. ESLint is simply running over your code to point out potential errors. The React library should still be able to run without issue if you do not include these return
statements
本文标签: javascriptquotMissing return type on functionquot for every React class methodStack Overflow
版权声明:本文标题:javascript - "Missing return type on function" for every React class method - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1738540692a2095427.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
"plugin:react/recommended", "plugin:@typescript-eslint/recommended"
so would have though this would be default?! – CaribouCode Commented Jun 21, 2019 at 18:15