跳到主要内容

@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 类型,默认值为 false

添加于: v7.21.4 版本

当设置为 true 时,Babel 将对所有扩展实施 flow 转换。当设置为 false 时,Babel 将忽略对 *.tsx 文件进行 flow 转换。

您可以 在这里 找到有关配置预设(preset)参数的更多信息。