@babel/plugin-transform-class-static-block
Traduction Bêta Non Officielle
Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →
info
Ce plugin est inclus dans @babel/preset-env, dans ES2022
Une classe contenant un bloc statique sera transformée en une propriété privée statique, dont l'initialiseur est le bloc statique encapsulé dans une IIAFE (expression de fonction fléchée invoquée immédiatement).
Exemple
JavaScript
class C {
static #x = 42;
static y;
static {
try {
this.y = doSomethingWith(this.#x);
} catch {
this.y = "unknown";
}
}
}
sera transformé en
JavaScript
class C {
static #x = 42;
static y;
static #_ = (() => {
try {
this.y = doSomethingWith(this.#x);
} catch {
this.y = "unknown";
}
})();
}
Comme le code généré inclut des propriétés privées de classe, si vous utilisez déjà d'autres plugins de fonctionnalités de classes (par exemple @babel/plugin-transform-class-properties), veillez à placer ce plugin avant les autres.
babel.config.json
{
"plugins": [
"@babel/plugin-transform-class-static-block",
"@babel/plugin-transform-class-properties"
]
}
Installation
- 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
Utilisation
Avec un fichier de configuration (Recommandé)
babel.config.json
{
"plugins": ["@babel/plugin-transform-class-static-block"]
}
Via CLI
Shell
babel --plugins @babel/plugin-transform-class-static-block script.js
Via l'API Node
JavaScript
require("@babel/core").transformSync("code", {
plugins: ["@babel/plugin-transform-class-static-block"],
});