angular – Typescript中的解构赋值

前端之家收集整理的这篇文章主要介绍了angular – Typescript中的解构赋值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
通过解构对象并分配变量,代码工作正常,

const { allowNegative,decimal,precision,prefix,suffix,thousands } = this.options;

但是,当我尝试使用此操作符时,它会抛出一个错误

`{ this.tabConfig,this.searchUiConfig,this.gridUiConfig } =  CONFIG;`

其中CONFIG是JSON.错误是[ts]赋值运算符(=)上的预期声明或语句.

有没有比这更好的方法

this.tabConfig = CONFIG.tabConfig;
 this.searchUiConfig = CONFIG.searchUiConfig;
 this.gridUiConfig = CONFIG.gridUiConfig;

解决方法

您可以使用以下语法执行此操作:

({ prop: this.prop } = obj);

我在这里使用的是deep object matching

var obj = { propIwantFromObj: 'foo' };
var { propIwantFromObj: whereToStoreValue } = obj;

在左侧部分,您将说明要从对象获取哪个属性,在右侧,您将说明存储值的位置.因此,在这种情况下,将使用foo值创建一个名为whereToStoreValue的新变量.

var obj = { propIwantFromObj: 'foo' };
var whereToStoreValue = obj.propIwantFromObj;

这可以用来存储这个(或其他对象)的值,但你需要将它包装在括号内,因为..由于某种原因,这个hack允许你使用..

如果你不使用括号,你会得到语法错误(它也不适用于纯JS).

例:

const CONFIG = {
  tabConfig: 1,searchUiConfig: 2,gridUiConfig: 3,};

class Foo {
  bar() {
    ({ tabConfig: this.tabConfig,searchUiConfig: this.searchUiConfig,gridUiConfig: this.gridUiConfig } =  CONFIG);
  }
}

const foo = new Foo();
foo.bar();

console.log(foo.tabConfig);
console.log(foo.searchUiConfig);
console.log(foo.gridUiConfig);

猜你在找的Angularjs相关文章