TypeScript中无其他可用对象时如何返回默认对象?现有写法是否可行?
代码正确性判定
你写的写法完全符合需求,是正确的。
JavaScript 对象展开运算符...的规则是后展开的对象的同名属性会覆盖先展开的对象的属性,你给出的代码执行顺序为:
- 先展开默认对象
defaultPathAttributes,作为初始属性基础 - 再展开
parentTreeNode?.pathAttributesSelection,其中的同名属性会覆盖默认对象的对应属性 - 最后展开
layerTreeNode?.pathAttributesSelection,其中的同名属性会覆盖前面两个对象的对应属性
同时你用到的可选链?.可以兼容parentTreeNode/layerTreeNode为undefined/null的场景,对应位置如果取值为空,展开操作不会新增任何属性也不会报错,刚好匹配你“对应层级属性不存在就取前一层级属性”的逻辑。
内容的提问来源于stack exchange,提问作者user15361861
相关产品推荐
相关产品推荐

