如何在TypeScript类型系统中添加更多的限制来解决一些错误?



我在构建TypeScript项目时遇到了一些问题,因为一个库的类型定义有错误。解决方案是添加strictNullChecks标志。

这对我来说真的是违反直觉的。添加限制如何消除错误?通常情况下,情况正好相反。

我的错误可以在这个GitHub问题上找到。
还有,正如这个用户指出的:

这是没有意义的,strict项目不能建立在一个非严格的

我试着去理解他们的类型,但是他们使用的是高级的TypeScript特性和深度泛型类型,而且他们没有记录他们的代码。

我认为,typescript实际上并没有添加"checks",它修改了nullundefined的类型,这可能会导致类型错误(事实上,这就是它的意思),据我所知。https://www.typescriptlang.org/tsconfig strictNullChecks🤔🤔

当strictNullChecks为true时,null和undefined有自己不同的类型,如果你试图在需要具体值的地方使用它们,你会得到一个类型错误。

当你打开这个选项时,它会以一种方式导致类型错误,当你修复所有错误并把这个选项打开时,它会以另一种方式导致错误。

相关内容