mcpField
A
ast-grep-typescript-react

ast-grep-typescript-react

github.com/pproenca开发21863 次安装11 周前更新
代码仓库

关于 ast-grep-typescript-react

面向使用 ast-grep 处理 TypeScript 和 React 代码的开发者技能,涵盖规则与代码转换。重点说明语言选择、AST 节点、JSX 匹配,以及通过 @ast-grep/napi 编程调用。

主要功能

  1. 01TSX 语言选择
  2. 02片段的 context 与 selector
  3. 03JSX 节点和属性匹配
  4. 04TypeScript 结构模式
  5. 05JSX 重写指引
  6. 06@ast-grep/napi 用法

适用场景

  1. 01为 TSX 代码编写规则
  2. 02查找 React 组件或 Hook
  3. 03构建 TypeScript 代码转换
  4. 04诊断规则无匹配的问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/pproenca/dot-skills --skill ast-grep-typescript-react

安装后在 Claude Code 中输入/ast-grep-typescript-react确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

AGENTS.md
metadata.json
assets/templates/
_template.md
references/
_sections.md
ctx-fragment-context-selector.md
fix-jsx-rewrite-completeness.md
jsx-attribute-metavars.md
jsx-self-closing-vs-paired.md
lang-scan-ts-and-tsx.md
lang-tsx-for-jsx.md
napi-lang-tsx-findall.md
ts-as-expression-casts.md
ts-generic-react-fc.md
ts-type-only-imports.md

详细介绍

适用于 TypeScript 和 React 的 ast-grep

当能力出色的模型将 ast-grep 用于 .ts/.tsx 代码时,常会遇到错误的默认设置——大多数情况下,规则会悄无声息地匹配不到任何内容,因为猜错了语言或节点类型。本技能假设你已经了解 ast-grep 的规则机制(模式、元变量、all/any/has/inside、约束);本技能只修正 TypeScript 和 React 带来的额外问题。

关于 ast-grep 规则编写机制的一般说明,请使用配套的 ast-grep 技能。

适用场景

  • 为 .ts 或 .tsx 代码编写 ast-grep 模式或 YAML 规则
  • 搜索 JSX 元素、属性、React hooks、导入或 TS 类型构造
  • 构建用于重写 JSX 或 TypeScript 的 codemod(重命名组件、移除 React.FC、迁移导入)
  • TSX 上的规则“匹配不到任何内容”,且你不知道原因(通常是语言或节点类型不对)
  • 通过 @ast-grep/napi 从 JS/TS 脚本中以编程方式调用 ast-grep

TS/React 规则异常时的首要检查步骤

  1. 检查语言。 包含 JSX 的文件必须使用 tsx 解析,不能使用 typescript。这是静默匹配不到内容最常见的原因。请参阅 lang-tsx-for-jsx。
  2. 调试模式的 AST。 在真实代码片段上运行 ast-grep run --pattern '<your pattern>' --lang tsx --debug-query=ast,即可查看节点类型并发现 ERROR 节点。请相信这个结果,不要凭猜测判断节点类型名称。
  3. 包装片段。 如果模式是属性、prop 或类型注解,就需要使用 context + selector。请参阅 ctx-fragment-context-selector。

规则类别

#类别前缀涵盖内容
1语言选择langtsx 与 typescript 的区别、扫描 .ts + .tsx、languageGlobs
2片段匹配ctxJSX 属性、prop、类型注解的 context/selector
3JSX 节点类型jsx自闭合与成对元素、属性值元变量
4TypeScript 构造ts仅类型导入、as 强制类型转换、React.FC 泛型
5重写与 Codemodfix重新输出 JSX 元变量,避免子项/prop 被丢弃
6编程式用法napi@ast-grep/napi 的 Lang.Tsx、NapiConfig 结构

快速参考

1. 语言选择(lang)
  • lang-tsx-for-jsx — 对任何 JSX 使用 tsx;typescript 会将 JSX 解析为 ERROR,导致匹配不到任何内容
  • lang-scan-ts-and-tsx — 覆盖 .ts 和 .tsx;使用 languageGlobs 以便复用(以及 <T> 强制类型转换的注意事项)
2. 片段匹配(ctx)
3. JSX 节点类型(jsx)
4. TypeScript 构造(ts)
5. 重写与 Codemod(fix)
6. 编程式用法(napi)

使用方法

针对你要做的决策,阅读相应的参考文件——每个文件都独立成篇,并附有规范示例。references/_sections.md 定义了分类;AGENTS.md 是完整的汇总索引。

相关技能

  • ast-grep — 通用的 ast-grep 规则编写机制(模式、组合、约束、测试)。此技能在此基础上增加了 TS/React 的特定内容。

评论

支持 Markdown