我在我的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
有没有办法让这些替代语法也起作用?
答案 0 :(得分:2)
但是,如果我改为编写
if (typeof a !== "null")
或...编译器将无法理解并且会抱怨a可能为null。
这是一件好事,因为typeof null === "object"
,而不是"null"
。 TypeScript不认为null
的非工作方式是正确的。