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



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

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

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

相关内容

最新更新