Typescript strictNullChecks语法

时间:2016-12-13 19:14:04

标签: typescript lodash

我在我的Typescript项目中使用strictNullChecks标志。

考虑以下功能:

function hello(a: string | null) {
  if (a !== null) {
    console.log(a.length); // Here, "a" can only be a string
  }
}

编译器在这里完美运行。

但是,如果我改为编写if (typeof a !== "null")甚至lodash' if (!_.isNull(a)),编译器就不会理解,并会抱怨a可能是null

有没有办法让这些替代语法也起作用?

1 个答案:

答案 0 :(得分:2)

  

但是,如果我改为编写if (typeof a !== "null")或...编译器将无法理解并且会抱怨a可能为null。

这是一件好事,因为typeof null === "object",而不是"null"。 TypeScript不认为null的非工作方式是正确的。