@babel/plugin-transform-class-static-block
Traducción Beta No Oficial
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
información
Este plugin está incluido en @babel/preset-env, como parte de ES2022
Una clase con un bloque estático se transformará en una propiedad privada estática, cuyo inicializador es el bloque estático envuelto en una IIAFE (expresión de función flecha invocada inmediatamente).
Ejemplo
JavaScript
class C {
static #x = 42;
static y;
static {
try {
this.y = doSomethingWith(this.#x);
} catch {
this.y = "unknown";
}
}
}
se transformará en
JavaScript
class C {
static #x = 42;
static y;
static #_ = (() => {
try {
this.y = doSomethingWith(this.#x);
} catch {
this.y = "unknown";
}
})();
}
Dado que el código generado incluye propiedades privadas de clase, si ya estás utilizando otros plugins para características de clases (por ejemplo, @babel/plugin-transform-class-properties), asegúrate de colocar este plugin antes que los demás.
babel.config.json
{
"plugins": [
"@babel/plugin-transform-class-static-block",
"@babel/plugin-transform-class-properties"
]
}
Instalación
- npm
- Yarn
- pnpm
- Bun
npm install --save-dev @babel/plugin-transform-class-static-block
yarn add --dev @babel/plugin-transform-class-static-block
pnpm add --save-dev @babel/plugin-transform-class-static-block
bun add --dev @babel/plugin-transform-class-static-block
Uso
Mediante un archivo de configuración (Recomendado)
babel.config.json
{
"plugins": ["@babel/plugin-transform-class-static-block"]
}
Mediante la CLI
Shell
babel --plugins @babel/plugin-transform-class-static-block script.js
Mediante la API de Node
JavaScript
require("@babel/core").transformSync("code", {
plugins: ["@babel/plugin-transform-class-static-block"],
});