@babel/plugin-proposal-partial-application
示例
🌐 Example
(示例来自提案)
JavaScript
function add(x, y) { return x + y; }
const addOne = add(1, ?); // apply from the left
addOne(2); // 3
const addTen = add(?, 10); // apply from the right
addTen(2); // 12
let newScore = player.score
|> add(7, ?)
|> clamp(0, 100, ?); // shallow stack, the pipe to `clamp` is the same frame as the pipe to `add`.
有效用法
🌐 Valid Usage
JavaScript
f(x, ?) // partial application from left
f(?, x) // partial application from right
f(?, x, ?) // partial application for any arg
o.f(x, ?) // partial application from left
o.f(?, x) // partial application from right
o.f(?, x, ?) // partial application for any arg
super.f(?) // partial application allowed for call on |SuperProperty|
无效用法
🌐 Invalid Usage
JavaScript
f(x + ?) // `?` not in top-level Arguments of call
x + ? // `?` not in top-level Arguments of call
?.f() // `?` not in top-level Arguments of call
new f(?) // `?` not supported in `new`
super(?) // `?` not supported in |SuperCall|
安装
🌐 Installation
- npm
- Yarn
- pnpm
- Bun
npm install --save-dev @babel/plugin-proposal-partial-application
yarn add --dev @babel/plugin-proposal-partial-application
pnpm add --save-dev @babel/plugin-proposal-partial-application
bun add --dev @babel/plugin-proposal-partial-application
用法
🌐 Usage
使用配置文件(推荐)
🌐 With a configuration file (Recommended)
babel.config.json
{
"plugins": [
["@babel/plugin-proposal-partial-application", { "version": "2018-07" }]
]
}
通过 Node API
🌐 Via Node API
JavaScript
require("@babel/core").transformSync("code", {
plugins: [
["@babel/plugin-proposal-partial-application", { version: "2018-07" }]
],
});
选项
🌐 Options
历史
| 版本 | 变更 |
|---|---|
v8.0.0 | 添加了 version 选项,并支持 "2018-07" |
version(必填)
🌐 version (required)
目前只支持一个版本:
🌐 There is only one version currently supported:
"2018-07"是在2018年7月的TC39会议上讨论后更新的提案版本。
参考
🌐 References