看看这一类型:
type MyType =
| { a: number }
| { b: number }
| { c: number }
| ({ b: number } & { c: number });
我想禁止a和b或c的组合.
const o1: MyType = { a: 10 }; // only a: OK
const o2: MyType = { b: 10 }; // only b: OK
const o3: MyType = { c: 10 }; // only c: OK
const o4: MyType = { b: 10, c: 10 }; // combine b and c: OK
// const o5: MyType = {}; // Forbidden (no fields)
const o6: MyType = { a: 10, b: 10 }; // Forbidden (I should not be able to combine a and b)
我不明白,因为typescript允许我实例化o6.不应该因为我不想看到a和b在一起...
有什么 idea 吗?
谢谢