跳到主要内容

@babel/preset-flow

如果您使用了 Flow,则建议您使用此预设(preset)。Flow 是一个针对 JavaScript 代码的静态类型检查器。此预设(preset)包含以下插件:

示例

输入

JavaScript
function foo(one: any, two: number, three?): string {}

输出

JavaScript
function foo(one, two, three) {}

安装

npm install --save-dev @babel/preset-flow

用法

通过配置文件(推荐)

babel.config.json
{
"presets": ["@babel/preset-flow"]
}

通过命令行工具(CLI)

Shell
babel --presets @babel/preset-flow script.js

通过 Node API

JavaScript
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)

将被解析为一个嵌套的二元表达式:

JavaScript
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:

JavaScript
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)参数的更多信息。