类型的打字稿问题

时间:2020-05-25 21:33:23

标签: typescript typescript-typings

该代码如何编译,它应该在第一个if之后抛出类型失败

class Optional<T> {}

class Some<T> extends Optional<T> {
  constructor(public t: T) {
      super()
  }
}

function div(n: number, d: number): Optional<number> {
  if (d === 0.0) {
    return "IMPOSSIBLE"
  }
  return new Some(d / n)
}

console.log(div(1, 0))

1 个答案:

答案 0 :(得分:2)

因为TypeScript具有structual type system,这意味着它不是根据名称而是根据其属性来判断类型兼容性,因此,空类实际上是any,而对于诸如null或{{ 1}},因为它不需要属性

相关问题