我正在查看Angular的HttpClient(https://angular.io/guide/http#error-handling)上的文档,并发现了以下片段:
showConfig() {
this.configService.getConfig()
.subscribe(
(data: Config) => this.config = { ...data }, // success path
error => this.error = error // error path
);
}
我很好奇为什么data
对象在被分配给config
属性之前就被传播了。与仅将数据对象直接直接分配给this.config
相比,这样做有什么好处?
答案 0 :(得分:1)
我也一直在想同样的事情。我想这只是一个很好的灵活做法。散布... data时,它会复制每个键/值对,而this.config是现在保存复制对象的接收者。如果需要,您可以向this.config添加其他内容,例如{... data,... moredata}
以下摘录摘自https://codeburst.io/a-simple-guide-to-destructuring-and-es6-spread-operator-e02212af5831
“当正在传播的事物是一个对象而接收者也是一个对象时,则键值对将被复制到一起,而不是仅仅复制值。通常,带有对象的传播算子用于复制现有对象或创建具有更多属性的新对象。”
这对我来说是很新的,所以我绝不是权威,但这就是我所收集的(如果我缺少某些东西,请告诉我)。我现在在一些生产代码中使用这种技术。