ngrx适配器选择器语法的含义是什么?

时间:2019-06-23 13:40:55

标签: angular typescript ngrx

我找到了以下ngrx适配器示例:

export const {
  selectAll: selectAllItems
} = adapter.getSelectors<State>(state => state.items);

但是我不明白这里分配了什么。 特别是类型的符号: const {sth: foo} = bar; 有人会这么好,请给我建议:)

1 个答案:

答案 0 :(得分:3)

这是Object Destruction in Typescript并分配给新变量名称的语法:

您的代码大致转换为(parsed using online parser)的经典javascript:

const selectAllItems = adapter.getSelectors(state => state.items).selectAll;

从TS文档复制的另一个示例:

// structure
const obj = {"some property": "some value"};

// destructure
const {"some property": someProperty} = obj;
console.log(someProperty === "some value"); // true

类似于Object destruction in Javascript,例如:

const {x, y} = {x: 10, y: 20};
console.log(x, y); // 10 20

或者可以从对象中解压缩属性,然后将其分配给名称与对象属性不同的变量。 (来自MDN文档)

var o = {p: 42, q: true};
var {p: foo, q: bar} = o;

console.log(foo); // 42 
console.log(bar); // true

例如,var {p: foo} = o从对象o中获取名为p的属性,并将其分配给名为foo的局部变量。

相关问题