@babel/preset-flow
非官方测试版翻译
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
如果使用 JavaScript 静态类型检查器 Flow,推荐使用此预设。它包含以下插件:
示例
输入
JavaScript
function foo(one: any, two: number, three?): string {}
输出
JavaScript
function foo(one, two, three) {}
安装
- npm
- Yarn
- pnpm
- Bun
npm install --save-dev @babel/preset-flow
yarn add --dev @babel/preset-flow
pnpm add --save-dev @babel/preset-flow
bun add --dev @babel/preset-flow
用法
通过配置文件(推荐)
babel.config.json
{
"presets": ["@babel/preset-flow"]
}
通过命令行
Shell
babel --presets @babel/preset-flow script.js
通过 Node API
JavaScript
require("@babel/core").transformSync("code", {
presets: ["@babel/preset-flow"],
});
配置选项
all
boolean,默认值 false
Flow 仅在文件顶部存在 @flow 编译指示或 .flowconfig 中设置了 all 选项时,才会解析 Flow 特有的语法特性。
如果在 Flow 配置中启用了 all 选项,请务必将此选项设为 true 以保持行为一致。
例如,当未设置上述插件时,带有类型参数的调用表达式:
f<T>(e)
会被解析为嵌套的二元表达式:
JavaScript
f < T > e;
allowDeclareFields
boolean,默认值 false
添加于:v7.9.0
备注
此功能将在 Babel 8 中默认启用
启用后,仅当类型声明字段带有 declare 修饰符前缀时才会被移除:
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
Hermes 团队正在维护 Babel 的替代 Flow 解析器,它能更好地支持最新的 Flow 语法特性。将此选项设为 true 即可启用。
警告
Hermes 解析器当前不会将注释附加到 AST。这可能导致依赖特定注释的转换出现问题。
您可以在此处阅读有关配置预设选项的更多信息