@babel/plugin-transform-computed-properties
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
Ejemplo
Entrada
JavaScript
var obj = {
["x" + foo]: "heh",
["y" + bar]: "noo",
foo: "foo",
bar: "bar",
};
Salida
JavaScript
var _obj;
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true,
});
} else {
obj[key] = value;
}
return obj;
}
var obj = ((_obj = {}),
_defineProperty(_obj, "x" + foo, "heh"),
_defineProperty(_obj, "y" + bar, "noo"),
_defineProperty(_obj, "foo", "foo"),
_defineProperty(_obj, "bar", "bar"),
_obj);
Instalación
- npm
- Yarn
- pnpm
- Bun
npm install --save-dev @babel/plugin-transform-computed-properties
yarn add --dev @babel/plugin-transform-computed-properties
pnpm add --save-dev @babel/plugin-transform-computed-properties
bun add --dev @babel/plugin-transform-computed-properties
Uso
Mediante un archivo de configuración (Recomendado)
Sin opciones:
babel.config.json
{
"plugins": ["@babel/plugin-transform-computed-properties"]
}
Con opciones:
babel.config.json
{
"plugins": [
[
"@babel/plugin-transform-computed-properties",
{
"loose": true
}
]
]
}
Mediante la CLI
Shell
babel --plugins @babel/plugin-transform-computed-properties script.js
Mediante la API de Node
JavaScript
require("@babel/core").transformSync("code", {
plugins: ["@babel/plugin-transform-computed-properties"],
});
Opciones
loose
boolean, valor predeterminado: false
Al igual que la asignación de métodos en clases, en modo loose los nombres de propiedades computadas utilizan asignaciones simples en lugar de ser definidas. Es poco probable que esto cause problemas en código de producción.
precaución
Considera migrar al supuesto de alto nivel setComputedProperties.
babel.config.json
{
"assumptions": {
"setComputedProperties": true
}
}
Ejemplo
Entrada
JavaScript
var obj = {
["x" + foo]: "heh",
["y" + bar]: "noo",
foo: "foo",
bar: "bar",
};
Salida
Cuando setComputedProperties es true.
JavaScript
var _obj;
var obj = ((_obj = {}),
(_obj["x" + foo] = "heh"),
(_obj["y" + bar] = "noo"),
(_obj.foo = "foo"),
(_obj.bar = "bar"),
_obj);
Cuando setComputedProperties es false.
JavaScript
import _defineProperty from "@babel/runtime/helpers/defineProperty";
var _obj;
var obj = ((_obj = {}),
_defineProperty(_obj, "x" + foo, "heh"),
_defineProperty(_obj, "y" + bar, "noo"),
_defineProperty(_obj, "foo", "foo"),
_defineProperty(_obj, "bar", "bar"),
_obj);
consejo
Puedes leer más sobre cómo configurar opciones de plugins aquí