使用非有效变量名称

时间:2016-04-12 15:21:58

标签: typescript ecmascript-6 destructuring

有人知道你是否可以在属性名称中使用带空格的对象解构?也许这不可能完成,我意识到JavaScript表示法不正确但我无法更改服务器json响应。

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

这可以按预期工作。

但是当我有以下对象结构时,我可以使用对象解构吗?

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

如果这是不可能的话,如果我可以使用某种语法来分配变量,那将是很好的,例如' ...' ...

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

由于

2 个答案:

答案 0 :(得分:18)

您可以使用以下语法为其指定有效的变量名称:

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

// use myName here

答案 1 :(得分:6)

  

当我在属性名称中有一个带空格的对象时,我可以使用对象解构吗?

是的,您可以使用解构,但您始终只能分配标识符(变量名称)。由于那些不允许使用空格,因此您无法使用属性名称和标识符相同的简写语法。

  

如果我可以使用某种类型的语法分配变量,那将会很好,因为':

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

as用于模块导入/导出。对于普通对象 - 文字和解构 - 您使用冒号:

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