我注意到一个常见的错误,我有一组不同的 if,其中一些是字符串或布尔值,但其中一些是数组。
但有时我忘记它总是会被定义,我必须实际检查:
if (array.length >= 1)
而不是if (array)
。
是否有 TS/ES linting 规则来检查我是否正在验证某些始终返回 true 的内容? (或者特别是当我如果一个已经定义的数组时,linter 应该知道它总是返回 true)
我发现了这个:https://eslint.org/docs/latest/rules/no-constant-condition但这不会警告我:
const array = []
if (array) console.log(array) // Wil always run
@typescript-eslint/no-unnecessary-condition
就是您要找的。它“不允许类型始终为真或始终为假的条件”。
您需要设置 typescript-eslint:它的 入门 和它的 Linting with Typed Linting。