加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angular – Typescript中的解构赋值

发布时间:2020-12-17 17:36:55 所属栏目:安全 来源:网络整理
导读:通过解构对象并分配变量,代码工作正常, const { allowNegative,decimal,precision,prefix,suffix,thousands } = this.options; 但是,当我尝试使用此操作符时,它会抛出一个错误: `{ this.tabConfig,this.searchUiConfig,this.gridUiConfig } = CONFIG;` 其中
通过解构对象并分配变量,代码工作正常,

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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读