eslint-plugin-flowtype 函数调用 入参不对时没有生效?

发布于 2022-09-05 10:39:21 字数 2739 浏览 15 评论 0

flow.js

//@flow

function test(n: number): number {
    return n * n;
}

function test2(n) {
    return n * n;
}



test('9');

export default {
    desc: 'flow checker',
    square(n: number): number {
        return n * n;
    }
};

clipboard.png

我的配置文件

.eslintrc.js

module.exports = {
    "root": true,
    // "parser": "babel-eslint",//not for vue
    "parserOptions": {
        "parser": "babel-eslint",//for vue
        "ecmaVersion": 8,
        "sourceType": "module",
        "impliedStrict ": true,
        "ecmaFeatures": {
            "jsx": true
        }
    },
    "env": {
        "browser": true,
        "es6": true
    },
    "globals": {
        "overwritten": true,
        "overwritten": false,
        "require": false,
        // "_ISPROD_": false,
        "process": false
    },
    "extends": [
        "plugin:flowtype/recommended",
        'eslint:recommended',
        'plugin:vue/recommended'
    ],
    "plugins": [
        "flowtype",
        "vue"
    ],
    "settings": {
        "flowtype": {
            "onlyFilesWithFlowAnnotation": true,//只检查 声明 flow语法的文件
        }
    },
    "rules": {
        "semi": [1, "always"],//语句强制分号结尾
        "camelcase": 1,
        "no-alert": 2,//
        "no-console": 1,
        "no-labels": 2,//
        "no-multi-str": 2,//多行字符串
        "no-sequences": 2,//逗号运算符 var c=a,b;
        //Best Practices
        "no-with": 2,
        "no-caller": 2,
        "no-eval": 2,
        "no-eq-null": 2,
        "no-unused-vars": 1,//未使用的变量
        "no-undef": 2,//no undefined
        "eqeqeq": 1,//===
        "block-scoped-var": 2,//块级内禁止使用var
        "vars-on-top": 2,
        "curly": [2, "all"],//if(){ }
        //ES6
        "no-var": 1,//使用let const
        //Stylistic Issues
        "one-var": 0,
        "no-inline-comments": 1,//行内注释
        //flow rules
        "flowtype/define-flow-type": 2,
        "flowtype/no-weak-types": 2,
        "flowtype/require-parameter-type": 2, //强制 参数类型
        "flowtype/no-types-missing-file-annotation": 2,//强制声明是否采用flow 语法
        "flowtype/semi": [
            2,
            "always"
        ],
        "flowtype/use-flow-type": 2,
        //vue/rules to override the default
        "vue/no-confusing-v-for-v-if": 2,//.vue 文件校验规则
        "vue/require-v-for-key": 1,
        "vue/valid-v-for": 1
    }
}

备注:

采用flow 官网那样 通过flow-bin 检查语法可以提示 test("9") :flow:string this type is incompatible ...

但 我想在vueJs项目中通过eslint 控制 编写规范,然后在webpack 打包时,eslint-loader控制有错误则终止编译。所以官网那样 的 提示不符合我的需求。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

离线来电— 2022-09-12 10:39:21

eslint-plugin-flowtype 这个lint检查的rules是flow的语法检查,并不是像flow check那样检查类型,只会检查你写的flow注释规不规范这样

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文