typescript ast 如何删除或修改JSDoc
时间: 2024-03-17 14:42:00 浏览: 11
要删除或修改 TypeScript AST 中的 JSDoc,您需要遍历 AST 并找到包含 JSDoc 的节点。以下是一些可能有用的代码示例:
删除节点的 JSDoc:
```typescript
import * as ts from "typescript";
function removeJSDoc(node: ts.Node): ts.Node {
// 如果节点有 JSDoc,则移除第一个 JSDoc
if (ts.isJSDocContainer(node)) {
const jsDocs = node.getJSDoc();
if (jsDocs.length > 0) {
return ts.factory.updateJSDocContainer(node, [], node.getChildren());
}
}
// 遍历节点的子节点
return ts.visitEachChild(node, removeJSDoc, null);
}
```
修改节点的 JSDoc:
```typescript
import * as ts from "typescript";
function updateJSDoc(node: ts.Node): ts.Node {
// 如果节点有 JSDoc,则更新第一个 JSDoc 的描述
if (ts.isJSDocContainer(node)) {
const jsDocs = node.getJSDoc();
if (jsDocs.length > 0) {
const oldJSDoc = jsDocs[0];
const newJSDoc = ts.factory.updateJSDocComment(
oldJSDoc,
oldJSDoc.tags,
ts.factory.createJSDocStringLiteral("new description")
);
return ts.factory.updateJSDocContainer(
node,
[newJSDoc],
node.getChildren()
);
}
}
// 遍历节点的子节点
return ts.visitEachChild(node, updateJSDoc, null);
}
```
请注意,这些示例仅处理第一个 JSDoc,如果节点具有多个 JSDoc,则需要进行适当的更改。另外,请确保在将修改后的 AST 写回磁盘之前备份原始代码。