@babel/preset-flow
如果您使用了 Flow,则建议您使用此预设(preset)。Flow 是一个针对 JavaScript 代码的静态类型检查器。此预设(preset)包含以下插件:
示例
输入
function foo(one: any, two: number, three?): string {}
输出
function foo(one, two, three) {}
安装
- npm
- Yarn
- pnpm
npm install --save-dev @babel/preset-flow
yarn add --dev @babel/preset-flow
pnpm add --save-dev @babel/preset-flow
用法
通过配置文件(推荐)
{
"presets": ["@babel/preset-flow"]
}
通过命令行工具(CLI)
babel --presets @babel/preset-flow script.js
通过 Node API
require("@babel/core").transformSync("code", {
presets: ["@babel/preset-flow"],
});
参数
all
boolean
类型,默认值为 false
。
如果文件顶部存在 @flow
pragma,或者在 .flowconfig
文件内设置了 all
参数,则 Flow 将只解析特定于 Flow 的功能。
如果你在 Flow 的配置中设置了 all
参数,请确保将此参数设置为 true
以获得相匹配的行为。
例如,如果没有上述任何一个参数设置,则如下所示的带有类型参数的调用表达式(call expression):
f<T>(e)
将被解析为一个嵌套的二元表达式:
f < T > e;
allowDeclareFields
boolean
类型,默认值为 false
添加于: v7.9.0
此参数在 Babel 8 中将被默认开启
When enabled, type-only class fields are only removed if they are prefixed with the declare
modifier:
class A {
declare foo: string; // Removed
bar: string; // Initialized to undefined
}
ignoreExtensions
boolean
类型,默认值为 true
添加于: v7.24.0
版本
当设置为 true
时,Babel 将对所有扩展实施 flow 转换。当设置为 false
时,Babel
将忽略对 *.tsx
文件进行 flow 转换。
experimental_useHermesParser
boolean
类型,默认值为 false
添加于: v7.24.0
版本
The Hermes team is maintaining an alternative Flow parser for Babel, which is better kept up-to-date with the latest Flow syntax features. You can enable it by setting this option to true
.
The Hermes parser does not currently attach comments to the AST. This can cause problems with transforms that depend on the presence of specific comments.
您可以 在这里 找到有关配置预设(preset)参数的更多信息。