跳至主内容

@babel/plugin-transform-flow-strip-types

非官方测试版翻译

本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →

信息

此插件已包含在 @babel/preset-flow

示例

输入

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

输出

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

安装

npm install --save-dev @babel/plugin-transform-flow-strip-types

用法

通过配置文件(推荐)

babel.config.json
{
"plugins": ["@babel/plugin-transform-flow-strip-types"]
}

通过命令行

Shell
babel --plugins @babel/plugin-transform-flow-strip-types script.js

通过 Node API

JavaScript
require("@babel/core").transformSync("code", {
plugins: ["@babel/plugin-transform-flow-strip-types"],
});

配置选项

all

boolean,默认值 false

Flow 仅在文件顶部存在 @flow 编译指示或 .flowconfig 中设置了 all 选项时,才会解析 Flow 特有的语法特性。

如果在 Flow 配置中启用了 all 选项,请务必将此选项设为 true 以保持行为一致。

例如,当上述条件均不满足时,以下带有类型参数的调用表达式:

f<T>(e)

会被解析为嵌套的二元表达式:

JavaScript
f < T > e;

requireDirective

boolean,默认值 false

将此选项设为 true 时,插件仅会移除包含 // @flow 指令的文件中的类型注解和声明。同时,对于不含该指令的文件中出现的任何 Flow 注解,插件将抛出错误。

allowDeclareFields

boolean,默认值 false

添加于:v7.9.0

备注

此功能将在 Babel 8 中默认启用

启用后,仅当类型声明字段带有 declare 修饰符前缀时才会被移除:

JavaScript
class A {
declare foo: string; // Removed
bar: string; // Initialized to undefined
}
提示

你可以在此处阅读更多关于配置插件选项的信息。