分配与对象不同的变量名

时间:2018-09-11 11:00:11

标签: typescript

说我有对象:

const obj = {
  foo: 'bar'
}

然后我将foo分配给这样的变量:

let {foo} = obj

是否可以更改变量名称?我已尝试像使用“导入”一样使用as,但这不起作用。

let {foo as bar} = obj

我确定我遗漏了一些明显的东西,但是我的google-fu今天使我失败了。

1 个答案:

答案 0 :(得分:4)

如果只是单个属性,最简单的方法是不使用解构:

let bar = obj.foo;

但是,如果要使用解构(也许有多个属性),请提供属性的名称,冒号和变量/常量的名称:

let {foo: bar} = obj;

示例:

const obj = {
  foo: 'bar'
};
let {foo: bar} = obj;
console.log(bar);

请记住,对象解构语法完全反映了对象初始化程序的语法。在对象初始化程序中,foo: barbar中的值分配给属性foo

const obj = {foo: bar}; // Property `foo` is assigned the value from variable `bar`

因此在对象解构中,foo: bar将属性foo的值分配给变量bar

let {foo: bar} = obj;   // Variable `bar` is assigned the value from property `foo`