TypeScript装饰器的AST节点名称是什么?用于ESLint选择器
TypeScript装饰器对应的ESLint AST节点名称
用于ESLint选择器的TypeScript装饰器相关AST节点主要有这些:
Decorator:所有单个装饰器都会被解析为这个节点类型,是装饰器本身的顶层节点- 搭配选择器时,常用的装饰器目标节点包括:
ClassDeclaration/ClassExpression:类装饰器的目标节点ClassProperty:类属性装饰器的目标节点MethodDefinition:类方法、访问器装饰器的目标节点FunctionDeclaration/FunctionExpression:函数装饰器的目标节点(需环境支持函数装饰器语法)
本地AST节点查询方法
不用找在线工具,自己写个简单脚本就能快速查看:
- 先安装依赖:
npm install @typescript-eslint/parser - 创建脚本文件(比如
ast-check.js),写入以下代码:
const { parse } = require('@typescript-eslint/parser'); // 替换成你要测试的带装饰器的代码 const testCode = ` @ClassDecorator class Demo { @PropDecorator name: string; @MethodDecorator greet() {} } `; const ast = parse(testCode, { sourceType: 'module', ecmaVersion: 'latest', parserOptions: { tsconfigRootDir: __dirname } }); // 打印完整AST结构,直接搜索Decorator相关字段即可 console.log(JSON.stringify(ast, null, 2));
- 运行脚本:
node ast-check.js,输出的JSON里就能清楚看到每个装饰器对应的节点类型和关联的目标节点。
另外,在ESLint规则开发过程中,也可以在规则逻辑里直接打印触发节点的type属性,快速确认节点名称。
内容的提问来源于stack exchange,提问作者user21020386
相关产品推荐
相关产品推荐

