代码之家  ›  专栏  ›  技术社区  ›  unional

无编译器错误检查可分配性

  •  0
  • unional  · 技术社区  · 5 年前

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

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

    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 回复  |  直到 5 年前
        1
  •  0
  •   unional    5 年前

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