@babel/plugin-transform-class-static-block
Traduzione Beta Non Ufficiale
Questa pagina è stata tradotta da PageTurner AI (beta). Non ufficialmente approvata dal progetto. Hai trovato un errore? Segnala problema →
informazioni
Questo plugin è incluso in @babel/preset-env, nella specifica ES2022
Una classe con un blocco statico verrà trasformata in una proprietà privata statica, il cui inizializzatore contiene il blocco statico racchiuso in un IIAFE (espressione di funzione freccia invocata immediatamente).
Esempio
JavaScript
class C {
static #x = 42;
static y;
static {
try {
this.y = doSomethingWith(this.#x);
} catch {
this.y = "unknown";
}
}
}
verrà trasformato in
JavaScript
class C {
static #x = 42;
static y;
static #_ = (() => {
try {
this.y = doSomethingWith(this.#x);
} catch {
this.y = "unknown";
}
})();
}
Poiché il codice generato include proprietà private di classe, se stai già utilizzando altri plugin per funzionalità delle classi (ad esempio @babel/plugin-transform-class-properties), assicurati di posizionarlo prima degli altri.
babel.config.json
{
"plugins": [
"@babel/plugin-transform-class-static-block",
"@babel/plugin-transform-class-properties"
]
}
Installazione
- 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
Utilizzo
Con un file di configurazione (Consigliato)
babel.config.json
{
"plugins": ["@babel/plugin-transform-class-static-block"]
}
Tramite CLI
Shell
babel --plugins @babel/plugin-transform-class-static-block script.js
Tramite Node API
JavaScript
require("@babel/core").transformSync("code", {
plugins: ["@babel/plugin-transform-class-static-block"],
});