我有一个部分对象,它有可能未定义的子属性,我想更新。
interface Foo {
data: string
otherData: string
}
interface Bar {
foo: Foo
}
interface Baz {
bar: Bar
}
let a: Partial<Baz> = {}
//... Desired action:
a.bar.foo.data = 'newData'
这是不允许的,因为属性可能未定义。解决这一问题的一个“办法”是以下畸形现象:;
a = {
...a,
bar: {
...a?.bar,
foo: {
...a?.bar?.foo,
data: 'newData'
}
}
} as Partial<Baz>
有没有更优雅的方法来实现这一点?
ts playground example