如何在自定义ESLint规则中访问TypeScript Interface的AST节点?
自定义ESLint规则:直接访问interface节点及遍历异常问题
需求目标
创建自定义ESLint规则,禁止在class、function、interface、type这类父结构中包含发布标签(@alpha、@beta、@internal)
当前实现情况
- 处理
class和function时,可通过ClassDeclaration/ClassExpression、FunctionDeclaration/FunctionExpression这些AST节点类型直接遍历处理 - 目前只能通过全局作用域的
Program节点来处理interface,想请教是否有直接访问interface类型节点的方法 - 已为
ClassExpression、ClassDeclaration和interface编写多套测试用例,当前规则的create(context)方法代码如下:
create(context) { return { ClassDeclaration(node) { classErrorLoggerHelper(node, context) }, ClassExpression(node) { classExpressionErrorLoggerHelper(node, context) }, Program(node) { programErrorLoggerHelper(node, context) } }; },
遇到的问题
处理class相关逻辑时,测试套件不仅会返回ClassDeclaration节点,还会返回Program对象,影响规则执行逻辑
内容的提问来源于stack exchange,提问作者whoaji
相关产品推荐
相关产品推荐

