我在React项目上使用Flow启用了eslint-plugin-flowtype
。它工作得很好,但并不完美。我有例如因缺少返回类型而引发的错误Missing return type annotation. (flowtype/require-return-type)
。但是当我写一个未知类型时我没有错误。例如,编写{dispatch: TotoType}
不会引发任何错误(TotoType
未声明)。
我的问题是,如果我写一个不存在的类型(我的意思是nomber
而不是number
),Flowtype eslint插件不会返回任何错误。每当我使用它时都应该触发错误,但事实并非如此:(。如果我在我的文件上使用Flow CLI,我收到类似unknown Type
的错误。我想让FlowType ESlint插件发现相同的错误
我正在使用提供这些规则的eslint-config-evenium配置文件:
{
...
"rules": {
"flowtype/boolean-style": [
2,
"boolean"
],
"flowtype/define-flow-type": 1,
"flowtype/delimiter-dangle": [
2,
"never"
],
"flowtype/generic-spacing": [
2,
"never"
],
"flowtype/no-primitive-constructor-types": 2,
"flowtype/no-weak-types": 0,
"flowtype/object-type-delimiter": [
2,
"comma"
],
"flowtype/require-parameter-type": 2,
"flowtype/require-return-type": [
2,
"always",
{
"annotateUndefined": "never",
"excludeArrowFunctions": true
}
],
"flowtype/require-valid-file-annotation": 2,
"flowtype/semi": [
2,
"always"
],
"flowtype/space-after-type-colon": [
2,
"always"
],
"flowtype/space-before-generic-bracket": [
2,
"never"
],
"flowtype/space-before-type-colon": [
2,
"never"
],
"flowtype/type-id-match": [
2,
"^([A-Z][a-z0-9]+)+Type$"
],
"flowtype/union-intersection-spacing": [
2,
"always"
],
"flowtype/use-flow-type": 1,
"flowtype/valid-syntax": 1
},
"settings": {
"flowtype": {
"onlyFilesWithFlowAnnotation": true
}
}
}
如何让ESlint为未经授权的类型生成错误? 如果可能的话,我将很高兴能够将未列出的类型添加到列表中的授权类型。
任何人都知道如何做到这一点,或者甚至可能吗?
答案 0 :(得分:0)
eslint-plugin-flowtype
仅验证用于编写流式代码的语法。它根本不运行Flowtype。
要让代码运行Flowtype,还有几个解决方案:
例如:
gulp.task('flow', () => {
execFile(flow, ['status'], (err, stdout) => {
console.log(stdout);
});
});