我在构建TypeScript项目时遇到了一些问题,因为一个库的类型定义有错误。解决方案是添加strictNullChecks
标志。
这对我来说真的是违反直觉的。添加限制如何消除错误?通常情况下,情况正好相反。
我的错误可以在这个GitHub问题上找到。
还有,正如这个用户指出的:
这是没有意义的,
strict
项目不能建立在一个非严格的
我试着去理解他们的类型,但是他们使用的是高级的TypeScript特性和深度泛型类型,而且他们没有记录他们的代码。
我认为,typescript实际上并没有添加"checks",它修改了null
和undefined
的类型,这可能会导致类型错误(事实上,这就是它的意思),据我所知。https://www.typescriptlang.org/tsconfig strictNullChecks🤔🤔
当strictNullChecks为true时,null和undefined有自己不同的类型,如果你试图在需要具体值的地方使用它们,你会得到一个类型错误。
当你打开这个选项时,它会以一种方式导致类型错误,当你修复所有错误并把这个选项打开时,它会以另一种方式导致错误。