是否有ESLint规则可检测空列表索引访问并给出提示?
检测空数组索引访问的ESLint解决方案
先开启TypeScript编译配置里的
strictNullChecks和noUncheckedIndexedAccess选项,这会让TypeScript原生识别出list[0]在数组可能为空时的潜在问题,将返回值类型标记为T | undefined。搭配ESLint的
@typescript-eslint/no-unnecessary-condition规则,可自定义提示信息。在ESLint配置中添加:{ "rules": { "@typescript-eslint/no-unnecessary-condition": [ "error", { "checkArrayPredicates": true, "message": "List might be 0 items" } ] } }这个规则会在未先检查数组长度就直接访问索引时触发警告,显示你指定的提示文本。
如果需要更精准的空数组访问检测,可使用
eslint-plugin-sonarjs中的no-empty-collection-access规则,同样支持自定义提示信息:{ "plugins": ["sonarjs"], "rules": { "sonarjs/no-empty-collection-access": [ "error", { "message": "List might be 0 items" } ] } }
注意:所有规则生效的前提是代码中数组的类型被正确标注,TypeScript能识别出它可能为空(比如类型为T[] | []或T[] | undefined)。
内容的提问来源于stack exchange,提问作者Alex Totolici
相关产品推荐
相关产品推荐

