我有两个Typescript对象x
和y
,定义如下:
let x = {A: 1, B: 2};
console.log('x = ', x);
let y = {A: 1};
console.log('y = ', y);
> x = {"A": 1, "B": 2}
> y = {"A": 1}
现在我想把y.B
设为x.B
当且仅当x.B
存在。我想把y.C
设为x.C
当且仅当x.C
存在。
有没有一个操作符可以用来实现这一点?目前我这样做,但它似乎笨重:
if (x.hasOwnProperty('B') && x.B !== null) {
y.B = x.B;
}
if (x.hasOwnProperty('C') && x.C !== null) {
y.C = x.C;
}
2条答案
按热度按时间blpfk2vs1#
在大多数情况下,您的代码相当于
(除非x prototype有B或x.B是
undefined
)7fyelxc52#
不完全确定你想做什么,但也许这是Optional Chaining operator(
?.
)的情况。它可以这样使用:
这个操作符在访问之前检查该属性是否存在。它访问
x.C
,如果抛出错误(而不是抛出错误),则将表达式计算为undefined
。