我找到了以下ngrx适配器示例:
export const {
selectAll: selectAllItems
} = adapter.getSelectors<State>(state => state.items);
但是我不明白这里分配了什么。
特别是类型的符号:
const {sth: foo} = bar;
有人会这么好,请给我建议:)
答案 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的局部变量。