检查可分配性而没有编译器错误

时间:2019-02-11 21:30:56

标签: typescript

我想找到一种方法来检查两个变量是否可以相互分配。

但是同时我不希望它是编译错误,因此以下内容不符合我的需求:

let x: { _type: 'a' }
let y: { _type: 'b' }
y = x // error

我的想法之一是以某种方式将它们组合成never类型。 如果可以的话,可以使用typeAssert.isNever()中的type-plus进行测试:

let z: never
typeAssert.isNever(z)

我尝试了{ _type: 'a' } & { _type: 'b' },但这没用。

1 个答案:

答案 0 :(得分:0)

找到了一个解决方案:Extract<{ _type: 'a' }, { _type: 'b' }>会给我never