typescript ecmascript-6 destructuring

typescript - Desestructuración de objetos con nombres de propiedad que no son nombres de variable válidos



ecmascript-6 destructuring (2)

¿Alguien sabe si puede usar la desestructuración de objetos con espacios en el nombre de la propiedad? Tal vez esto no se pueda hacer y me doy cuenta de que la notación de JavaScript es incorrecta, pero no puedo cambiar la respuesta json del servidor.

var obj1 = {name: ''Mr Smith'', age: 21}; //destructure var {name, age} = obj1; //name=''Mr Smith'' and age=21

Esto funciona como se esperaba.

Pero cuando tengo la siguiente estructura de objetos, ¿puedo usar la desestructuración de objetos o no?

var obj2 = {"my name": "Mr Jones", age: 22}; var {''my name'', age} = obj2;

Si esto no es posible, sería bueno si pudiera asignar la variable con algún tipo de sintaxis como ''como'' ...

var {''my name'' as name, age} = obj2; //name=''Mr Jones'';

Gracias


Cuando tengo un objeto con espacios en el nombre de la propiedad, ¿puedo usar la desestructuración de objetos o no?

Sí, puede usar la desestructuración, pero siempre puede asignar solo identificadores (nombres de variables). Como esos no permiten espacios, no puede usar la sintaxis abreviada donde el nombre de propiedad y el identificador son iguales.

Sería bueno si pudiera asignar la variable con algún tipo de sintaxis como ''como'':

var {''my name'' as name, age} = obj2;

as es para el módulo de importación / exportación. Para objetos normales, tanto literales como de desestructuración, utiliza los dos puntos:

var {''my name'': name, age} = obj2;


Puede asignarle un nombre de variable válido utilizando esta sintaxis:

var {"my name": myName, age} = obj2; // use myName here