我使用 create-react-app
构建了一个新项目,并希望使用静态类型检查启动它,现在市场上有两种选择:
- typescript
- 流动
我有点想使用 Flow,因为它也是由 Facebook 构建的,应该(?)对 React 项目有更好的支持。
所以我正在努力的是 VSCode 中的类型检查性能。创建项目后,我运行以下命令:
yarn add -D eslint-plugin-prettier husky prettier pretty-quick babel-eslint eslint-plugin-flowtype flow-bin eslint
- 添加了 Airbnb React 样式:
eslint --init
- 运行
flow init
- 已安装 Flow Language Support
- 根据建议禁用 JavaScript 和 TypeScript 语言支持
- 在我的工作区设置中添加了以下配置:
-
{
"flow.useNPMPackagedFlow": true,
"flow.pathToFlow": "${workspaceRoot}/node_modules/.bin/flow"
}
我的.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"]
}
}
}
}
但是 Flow 在我的机器上似乎很慢,我在我的 App.js
中添加了一个简单的函数:
const sum = (a: number, b: number) => a + b;
sum(1, '12323');
而且验证我的代码最多需要 10 秒,这实在是太糟糕了。有什么办法可以加快速度吗?
也许值得从 TypeScript 开始,而不必为 Flow 而烦恼?
最佳答案
关于可能的内存泄漏和与流相关的性能问题,有一些 Unresolved 问题,一些链接如下:
https://github.com/facebook/flow/issues/2152
https://github.com/flowtype/flow-bin/issues/70
这两种工具都很棒并且各有利弊,我个人建议也尝试一下 TypeScript 并自己进行比较。
根据我自己在大型代码库上的经验,我发现了 TypeScript:
- 性能更高
- 更多类型的外部库
- 更大的社区
关于javascript - VSCode 中的流类型检查性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49480268/