我想找到一种方法来检查两个变量是否可以相互分配。
但同时我不希望它是编译错误,所以以下内容不符合我的需求:
let x: { _type: 'a' }
let y: { _type: 'b' }
y = x // error
我的一个想法是以某种方式将它们组合成never
类型。如果我能做到这一点,我可以用type-plus
typeAssert.isNever()
进行测试:
let z: never
typeAssert.isNever(z)
我试过{ _type: 'a' } & { _type: 'b' }
但这不起作用。
找到一个解决方案:Extract<{ _type: 'a' }, { _type: 'b' }>
会给我never