typescript - variaveis - why destructuring javascript




Destruição de objetos com nomes de propriedades que não são nomes de variáveis válidos (2)

Quando tenho um objeto com espaços no nome da propriedade, posso usar a destruição do objeto ou não?

Sim, você pode usar a desestruturação, mas sempre pode atribuir apenas a identificadores (nomes de variáveis). Como esses não permitem espaços, você não pode usar a sintaxe abreviada em que o nome e o identificador da propriedade são iguais.

Seria bom se eu pudesse atribuir a variável com algum tipo de sintaxe como 'as':

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

as é para importações / exportações de módulos. Para objetos normais - literais e destrutivos - você usa os dois pontos:

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

Alguém sabe se você pode usar a destruição de objetos com espaços no nome da propriedade? Talvez isso não possa ser feito e percebo que a notação JavaScript está incorreta, mas não posso alterar a resposta json do servidor.

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

Isso funciona como esperado.

Mas quando tenho a seguinte estrutura de objetos, posso usar a desestruturação de objetos ou não?

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

Se isso não for possível, seria bom se eu pudesse atribuir a variável com algum tipo de sintaxe como 'as' ...

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

obrigado


Você pode atribuir um nome de variável válido usando esta sintaxe:

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

// use myName here