有没有办法配置 ESLint 来捕获打字稿中类 null 值的错误使用?

Mab*_*eek 4 typescript eslint eslintrc typescript-eslint

例如,如果我有这行代码:

const subject = collection.city?.person;

if(subject.name === "Jimmy") {
// do something
}
Run Code Online (Sandbox Code Playgroud)

例如,静态分析工具会对这行代码大喊大叫,因为它们认为它“错误地使用了类似 null 的值”。因为如果主题为空,则subject.name无法定义。然而,ESLint 让它作为有效代码通过。

有没有办法配置 ESLint 以在构建时到达静态分析工具之前捕获这些类型的错误?

Ale*_*s99 5

您可以在 tsconfig 中直接使用 TypeScript 强制执行 null 检查strictNullChecks

\n
\n

何时strictNullChecksfalsenullundefined语言有效地忽略。这可能会导致运行时出现意外错误。

\n

strictNullCheckstrue和都有自己不同的类型时,如果您尝试在需要具体值的地方使用它们,您\xe2\x80\x99 将收到类型错误nullundefined

\n
\n

这比 ESLint\ 的 null 强制执行更有效,因为它在 TypeScript 编译器中运行。

\n