VSCode中的流类型检查性能

Eva*_*kas 5 javascript typescript reactjs flowtype visual-studio-code

我已经构建了一个新项目,create-react-app并希望使用静态类型检查启动它,现在市场上有两种选择:

  • 打字稿

我很想跟Flow一起去,因为它也是由Facebook构建的,应该(?)更好地支持React项目.

所以我正在努力的是VSCode中的类型检查性能.创建项目后,我运行了以下命令:

  1. yarn add -D eslint-plugin-prettier husky prettier pretty-quick babel-eslint eslint-plugin-flowtype flow-bin eslint
  2. 添加Airbnb React风格: eslint --init
  3. flow init
  4. 已安装的流语言支持
  5. 已推荐禁用JavaScript和TypeScript语言支持
  6. 在我的Workspace设置中添加了以下配置:

-

{
  "flow.useNPMPackagedFlow": true,
  "flow.pathToFlow": "${workspaceRoot}/node_modules/.bin/flow"
}
Run Code Online (Sandbox Code Playgroud)

我的.eslintrc情况如下:

{
  "extends": ["airbnb", "plugin:flowtype/recommended"],
  "plugins": ["prettier", "flowtype"],
  "parser": "babel-eslint",
  "env": {
    "browser": true,
    "es6": true,
    "jest": true,
    "node": true
  },
  "rules": {
    "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }],
    "prettier/prettier": [
      "error",
      {
        "printWidth": 80,
        "singleQuote": true,
        "useTabs": false,
        "tabWidth": 2,
        "semi": true,
        "bracketSpacing": true
      }
    ]
  },
  "settings": {
    "import/resolver": {
      "node": {
        "paths": ["src"]
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但是我的机器上的Flow似乎很慢,我为我添加了一个简单的功能App.js:

const sum = (a: number, b: number) => a + b;
sum(1, '12323');
Run Code Online (Sandbox Code Playgroud)

验证我的代码需要10秒才能完成.有没有办法加快速度?

也许值得从TypeScript开始并且不打扰Flow?

Gib*_*boK 5

关于可能的内存泄漏以及与性能有关的流问题,存在一些未解决的问题,以下一些链接:

https://github.com/facebook/flow/issues/2152

https://github.com/flowtype/flow-bin/issues/70

两种工具都很不错,各有利弊,我个人建议也尝试TypeScript并自己进行比较。

根据我在大型代码库上的经验,我发现TypeScript:

  • 表现更好
  • 外部库的更多类型
  • 更大的社区