eslint-plugin-compat未检测IE11不支持的toSorted()问题求助
问题原因及解决方案
可能的核心原因
TypeScript target配置干扰兼容性检测
你的tsconfig设置target: ES2023,而toSorted()是ES2023新增的数组方法。eslint-plugin-compat默认会参考TypeScript的编译目标,认为代码会被编译到ES2023环境,因此跳过了针对IE11的兼容性校验。插件未强制读取browserslist配置
尽管package.json中配置了browserslist: ["IE 11"],但在TypeScript环境下,插件需要显式配置来强制使用browserslist规则,而非依赖编译目标。规则可能被其他配置覆盖
虽然你继承了plugin:compat/recommended,但配置加载顺序或其他规则集可能覆盖了compat/no-unsupported-features的生效逻辑。
具体解决方案
方案1:强制插件使用指定兼容目标
在eslintrc.json中添加settings.compat配置,明确忽略TypeScript target,强制校验IE11兼容性:
"settings": { "compat": { "overrideTargets": { "ie": "11" } } }
方案2:调整tsconfig的target
如果实际编译输出并非ES2023,可将tsconfig的target改为更低版本(比如ES5),这样TypeScript会提示toSorted()需要polyfill,同时eslint-plugin-compat会触发兼容性检测。
方案3:显式启用compat规则
在eslintrc.json的rules中明确开启规则,避免被其他配置覆盖:
"rules": { "compat/no-unsupported-features": ["error", { "versionDetection": "auto", "ignores": [] }] }
额外检查点
- 确认没有
.browserslistrc文件覆盖package.json中的配置 - 执行
npx browserslist命令验证配置是否生效,输出应包含IE 11
内容的提问来源于stack exchange,提问作者GarfieldKlon
相关产品推荐
相关产品推荐

