@babel/preset-flow
如果您使用 Flow,一種 JavaScript 程式碼的靜態類型檢查器,建議使用此預設值。它包含下列外掛程式
範例
在
JavaScript
function foo(one: any, two: number, three?): string {}
輸出
JavaScript
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
用法
使用設定檔(建議)
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。這可能會導致依賴特定註解存在的轉換產生問題。
你可以 在此 閱讀更多關於設定預設選項的資訊