寻求检测TypeScript --erasableSyntaxOnly禁用语法的ESLint规则
TypeScript 5.8 --erasableSyntaxOnly的ESLint预检测方案
现成ESLint规则情况
目前@typescript-eslint官方插件里没有专门针对--erasableSyntaxOnly的内置规则,第三方插件也暂无广泛流行的对应实现。
通过no-restricted-syntax实现的方案
完全可以用no-restricted-syntax规则自定义检测逻辑,具体配置如下:
核心配置代码
在你的ESLint配置文件(如.eslintrc.json)中添加:
{ "rules": { "no-restricted-syntax": [ "warn", // 检测enum声明 { "selector": "TSEnumDeclaration", "message": "enum语法将在--erasableSyntaxOnly模式下报错,请逐步移除" }, // 检测类的参数属性 { "selector": "ClassProperty[parameterProperty=true]", "message": "类参数属性将在--erasableSyntaxOnly模式下报错,请逐步移除" } ] } }
配置说明
TSEnumDeclaration:TypeScript AST中对应enum定义的节点选择器,可精准匹配所有enum声明ClassProperty[parameterProperty=true]:匹配类中通过构造函数参数直接定义的属性(例如class Foo { constructor(public bar: string) {} }这类写法)
配置完成后,ESLint会在代码出现上述语法时抛出警告,你可以在日常迭代中逐步修复问题,待所有代码调整完成后再启用--erasableSyntaxOnly标识。
内容的提问来源于stack exchange,提问作者Vencovsky
相关产品推荐
相关产品推荐

