2025-06-30 07:30:21 淘宝世界杯
# 功能时间表 我们在每个 Babel 版本中引入了哪些主要的新特性?此页面包含每个次要版本的非常简短的摘要,或者您可以在 GitHub 上 (opens new window) 阅读完整的更新日志!此外,使用此时间线来跟踪其他一些重要的工作,例如babel-polyfills (opens new window) 项目。
# Babel7.21.0 (opens new window) 博文
打字稿 5.0 支持 支持更新* 在 2023 年 1 月 TC39 会议上达成共识的* decorators提案 支持* 内联 RegExp 修饰符 Stage 3 提案JavaScript /(?i-m:a.)/m.exec("a\nAb"); // ["Ab"]
# Babel7.20.0 (opens new window) 博文
打字稿 4.9 支持
对显式资源管理 (opens new window) 第 2 阶段提案的解析器支持
JavaScript
{
using handle = openFile(name, "w+");
write(handle, "Hi!\n");
write(handle, ":)\n");
} // Automatically close the file
对导入反射 (opens new window) 第 2 阶段提案的解析器支持 JavaScript
import module mod from "./mod.js";
// later ...
import(mod);
# babel-loader 9.0.0 发布
# Babel7.19.0 (opens new window) 博文
支持第三阶段版本的* 装饰器 提案 转换对* 重复命名捕获组 Stage 3 提案的支持JavaScript /(?
# Babel7.18.0 (opens new window) 博文
打字稿 4.7 支持 转换对Private destructuring Stage 2 提案的支持JavaScript class A {
#x = 2;
method() {
const { #x: x } = this;
}
}
regenerator-runtime编译生成器时不再需要手动包含帮助程序
# Babel7.17.0 (opens new window) 博文
支持新版装饰器 (opens new window) Stage 2 提案 JavaScript
class A {
@reactive #x = 2;
@logger
method() {
this.#x++;
}
}
支持字符串第 2 阶段提案的 RegExp 集合符号和属性 (opens new window) JavaScript
/[\p{RGI_Emoji}&&[\0-\uFFFF]]/v;
对私有解构 (opens new window) 阶段 2 提案的解析器支持 JavaScript
class A {
#x = 2;
method() {
const { #x: x } = this;
}
}
# Babel7.16.0 (opens new window) 博文
默认* 启用* 类静态块Stage 4 提案 JavaScript class A {
static {
initialize(A);
}
}
打字稿 4.5 支持
支持* ESLint 8 in @babel/eslint-parser.
# Babel7.15.0 (opens new window) 博文
默认* 启用对* 顶级Stage 4 提案的解析await JavaScript import db from "db";
await db.connect();
默认* 启用* 私人品牌检查第 4 阶段提案 JavaScript class A {
static { initialize(A); } // static block
#field;
is(obj) {
return #field in obj; // private brand check
}
}
支持“Hack-style” * pipeline operator Stage 2 提案JavaScript const result = "World" |> `Hello, ${%}!` |> alert(%);
打字稿 4.4 支持
# Babel7.14.0 (opens new window) 博文
默认* 启用* Class Fields 、 Private Methods 和Static Class Features Stage 4 proposals (opens new window) 将* 私有品牌检查 和静态类块 (opens new window) 建议添加到@babel/preset-env的shippedProposals (opens new window) JavaScript class A {
static { initialize(A); } // static block
#field;
is(obj) {
return #field in obj; // private brand check
}
}
支持* async do表达式 提案JavaScript let valP = async do {
2 + await computeIt();
};
支持* importInterop: "node" 中的选项@babel/plugin-transform-modules-commonjs,使 Babel 符合 Node.js 行为
打字稿 4.3 支持
# Babel7.13.0 (opens new window) 博文
顶级* targets 选项 ( RFC ) 粒度编译器假设(* 文档 ,RFC (opens new window) ) 支持* 记录和元组 提案JavaScript let rec = #{ x: 1 };
let tup = #[1, 2, 3];
打字稿 4.2 支持
# Babel7.12.0 (opens new window) 博文
支持* 类静态块 提案JavaScript class A {
static { initialize(A); }
}
支持* 导入和导出字符串名称 JavaScript let happy = "wooo!";
export { happy as "😃" };
对Import Assertions 提议的解析器支持JavaScript import json from "./foo.json" assert { type: "json" };
打字稿 4.1 支持
# Babel7.11.0 (opens new window) 博文
默认* 启用* 逻辑分配 和 数字分隔符第 4 阶段提案 对Decimal 提案的解析器支持JavaScript console.assert(0.1m + 0.2m === 0.3m);
打字稿 4.0 支持
# @babel/eslint- parser 博文
# Babel7.10.0 (opens new window) 博文
import.meta 默认启用对 Stage 4 提案的解析器支持 支持* Private Fields 提案的人体工程学品牌检查JavaScript class Car {
#plate;
race(other) {
if (#plate in other) console.log("Racing against another car!");
}
}
# babel- polyfills 存储库
# Babel7.9.0 (opens new window) 博文
bugfixes 中的选项@babel/preset-env,解决浏览器错误而不是编译整个功能
打字稿 3.8 支持
支持流* declare类字段
支持* 自动 JSX 运行时
# Babel7.8.0 (opens new window) 博文
默认* 启用* Optional Chaining 和 Nullish Coalescing Stage 4 提案
支持* .mjs配置文件
# Babel7.7.0 (opens new window) 博文
对顶级await 提案的解析器支持 JavaScript
import db from "./database.js";
await db.connect();
添加对 Early Errors 的错误恢复支持@babel/parser
支持.json和.cjs配置文件
打字稿 3.7 支持
# Babel7.6.0 (opens new window) 博文
支持静态私有访问器, * 静态类特性 提案的一部分JavaScript class Dog {
static get #className() { return "Dog"; }
}
# Babel7.5.0 (opens new window) 博文
支持* F# 管道运算符 提案JavaScript num |> add(2) |> double
打字稿* namespace支持
# Babel7.4.0 (opens new window) 博文
支持注入* core-js@3polyfill 支持* 部分申请 提案JavaScript strings.map(parseInt(?));
支持静态私有方法,部分 * 静态类特性 提案JavaScript class Dog {
static #register() { /* ... */ }
}
打字稿 3.4 支持
# Babel7.3.0 (opens new window) 博文
支持实例私有访问器, * 私有方法 提案的一部分JavaScript class Dog {
get #randomId() { return Math.random(); }
}
支持* 智能管道运营商 提案JavaScript num |> add(2, #) |> double
支持 * 正则表达式中的* 命名捕获组 JavaScript str.match({String.raw`/^(?
TypeScript 3.2 和 2.9 支持
# Babel7.2.0 (opens new window) 博文
支持实例私有方法,* 私有方法 提案的一部分JavaScript class Dog {
#bark() { console.log("Mew!") }
}
# Babel7.1.0 (opens new window) 博文
支持* 装饰器 提案,因为它在 2018 年 9 月指定JavaScript class Person {
@autoIncrement age;
}
支持静态私有字段,* 静态类特性 提案的一部分JavaScript class Person {
static #classId = 3;
}
# Babel7 (opens new window) 博文
自 2 年的预发布以来,这有很多变化。
放弃对未维护的节点版本的支持:0.10、0.12、4、5 切换到作用域包 ( * babel-core to @babel/core ) 删除年度预设 ( * @babel/preset-es2015) 和阶段预设 ( @babel/preset-stage-0)(博客文章 (opens new window) )。 在某些情况下添加了“纯”( * /*#__PURE__*/) 注释支持。(稍后实现为@babel/helper-annotate-as-pure (opens new window) 添加项目范围的* babel.config.js配置文件 ( docs ) 和overrides (opens new window) 配置选项。 添加* "useBuiltIns: "usage"到@babel/preset-env (opens new window) 支持 TypeScript 通过* @babel/preset-typescript 支持 JSX 片段* <>> 支持大量 TC39 提案: Unicode 属性正则表达式 JSON超集 new.target 类私有实例字段 ( class A { #b = 2 }) 可选的捕捉绑定 try { throw 0 } catch { do() } BigInt (仅语法) import.meta (仅语法)( import.meta.url) 数字分隔符 ( 1_000) function.sent 可选链接 ( a?.b) 逻辑赋值运算符 ( a &&= b; a ||= b) 无效合并运算符 ( a ?? b) 管道操作员 ( a |> b) 抛出表达式 ( () => throw new Error("a"))