@babel/preset-flow
このプリセットは、JavaScriptコードの静的型チェッカーであるFlowを使用する場合に推奨されます。以下のプラグインが含まれています。
例
入力
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は、ファイルの先頭に@flow
プラグマが存在する場合、または.flowconfig
内にall
オプションが設定されている場合にのみ、Flow固有の機能を解析します。
Flow設定でall
オプションを使用している場合は、このオプションをtrue
に設定して、一致する動作になるようにしてください。
たとえば、上記のいずれも設定されていない場合、型引数を持つ以下の呼び出し式は
f<T>(e)
入れ子になった二項演算式として解析されます
f < T > e;
allowDeclareFields
boolean
、デフォルトはfalse
追加バージョン: v7.9.0
これはBabel 8でデフォルトで有効になります
有効にすると、型のみのクラスフィールドは、`declare`修飾子が前に付いている場合にのみ削除されます
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に添付していません。これは、特定のコメントの存在に依存する変換で問題を引き起こす可能性があります。
プリセットオプションの設定について詳しくは、こちらをご覧ください。