跳至主要內容

@babel/preset-flow

如果您使用 Flow,一種 JavaScript 程式碼的靜態類型檢查器,建議使用此預設值。它包含下列外掛程式

範例

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

布林值,預設為 false

如果檔案最上方有 @flow 實用程式,或 .flowconfig 內設定了 all 選項,Flow 才會剖析 Flow 特定的功能。

如果你在 Flow 設定中使用 all 選項,請務必將此選項設定為 true 以取得相符的行為。

例如,如果沒有設定上述任一選項,以下帶有類型參數的呼叫表達式

f<T>(e)

將會被剖析為巢狀二元表達式

JavaScript
f < T > e;

allowDeclareFields

布林值,預設為 false

新增於:v7.9.0

注意

這將在 Babel 8 中預設啟用

啟用後,只有加上 declare 修飾詞的類型限定類別欄位才會被移除

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

ignoreExtensions

布林值,預設為 true

新增於:v7.24.0

當設定為 true 時,Babel 會將 flow 轉換套用至所有副檔名。當設定為 false 時,Babel 會避免對 *.tsx 檔案進行 flow 轉換。

experimental_useHermesParser

布林值,預設為 false

新增於:v7.24.0

Hermes 團隊正在維護 Babel 的替代 Flow 解析器,它能更好地與最新的 Flow 語法功能保持同步。你可以透過將此選項設定為 true 來啟用它。

警告

Hermes 解析器目前不會將註解附加到 AST。這可能會導致依賴特定註解存在的轉換產生問題。

你可以 在此 閱讀更多關於設定預設選項的資訊