interface abc {
a: number
}
interface cde {
b: number
}
let d: abc | cde = { a: 1, b: 2 }
function aaa() {
if (d.a) {
}
}
现在无论访问a或b都会报错
interface abc {
a: number
}
interface cde {
b: number
}
let d: abc | cde = { a: 1, b: 2 }
function aaa() {
if (d.a) {
}
}
现在无论访问a或b都会报错
你的d对象是abc和cde求并集的结果所以用 abc & cde声明d 而不是 abc | cde
如果你的需求不是这种的话可用类型收缩,把类型收缩到正确的类型