在TypeScript中是否可以定义一个具有两个可选属性“ a”和“ b”的接口,其中只能设置零或两个属性之一,而不能同时设置两个属性?
interface T {
a?: number,
b?: this extends { a: number } ? never : number // not working!!!
}
// shall be okay
const w: T = {
}
// shall be okay
const x: T = {
a: 1
}
// shall be okay
const y: T = {
b: 2
}
// shall not be okay
const z: T = {
a: 1,
b: 2
}