首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何向使用typescript AST api生成的typescript添加JSDoc注释?

向使用TypeScript AST API生成的TypeScript添加JSDoc注释的方法如下:

  1. 导入相关的TypeScript AST API模块:
代码语言:txt
复制
import * as ts from 'typescript';
  1. 创建一个TypeScript源文件的AST树:
代码语言:txt
复制
const sourceCode = `
  const num: number = 42;
  console.log(num);
`;
const sourceFile = ts.createSourceFile('example.ts', sourceCode, ts.ScriptTarget.Latest);
  1. 遍历AST树,找到需要添加JSDoc注释的节点:
代码语言:txt
复制
function visitNode(node: ts.Node) {
  if (ts.isVariableDeclaration(node)) {
    // 在这里添加JSDoc注释
    const jsDocComment = ts.addSyntheticLeadingComment(
      node,
      ts.SyntaxKind.MultiLineCommentTrivia,
      '* This is a number variable',
      false
    );
    return ts.visitEachChild(node, visitNode, context);
  }
  return ts.visitEachChild(node, visitNode, context);
}

const updatedSourceFile = ts.visitNode(sourceFile, visitNode);
  1. 将更新后的AST树转换为TypeScript代码:
代码语言:txt
复制
const printer = ts.createPrinter();
const result = printer.printFile(updatedSourceFile);
console.log(result);

这样就可以向使用TypeScript AST API生成的TypeScript代码中的指定节点添加JSDoc注释了。

注意:以上示例中的代码仅供参考,具体的实现方式可能因实际情况而异。在实际应用中,你可能需要根据自己的需求和AST树的结构进行相应的修改和调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Angular 工具篇之文档管理

文档注释 comments Compodoc 使用 TypeScript AST 解析器和它内部 API,因此注释必须是合法 JSDoc 注释。...JSDoc Tags 由于 TypeScript 编译器限制 目前 Compodoc 只支持以下 JSDoc 标签: @returns —— 描述返回值 @ignore —— 表示标记内容永远不会出现在文档中...标签生成对应文档之外,它还能为我们自动生成项目概况、路由信息、组件信息及文档覆盖率等。...总结 本文简单介绍了如何利用 Compodoc 这款工具,为 Angular 应用程序生成静态文档,Compodoc 基本上能够满足我们需求。...对 Angular 项目来说,除了 Compodoc 之外,你也可以考虑使用谷歌官方出品 API 文档生成工具 Dgeni,它对外开放了丰富接口,还支持插件扩展,具有非常强定制性。

1.6K10

JSDoc ,一个可替代 TypeScript 方案?

本文将您展示如何使用JSDoc来获得相同类型控制,同时使用纯JavaScript进行最快开发时间和更好文档编写! JavaScript已经巩固了其作为近年来最常用脚本语言之一地位。...JSDoc相对于TypeScript优势: 灵活性和兼容性:JSDoc只是JavaScript注释,这意味着它可以添加到任何JavaScript代码库中,而不受语言版本限制,并且不像TypeScript...代码注释JSDoc不仅可以用于类型检查,还可以用于添加更多文档,描述函数工作原理,并生成文档网站,从而提供价值以增强代码可维护性和理解性。...如何使用JSDoc:基础知识 由于其长期存在,JSDoc在所有现代编辑器中都得到了广泛支持,并且可以直接使用,无需任何安装。...在一个 .js 文件中添加JSDoc,如所述只是注释,通过使用额外 * 开启一个注释来完成 // Normal Javascript Comment 1 /* Normal Javascript Comment

48510

为你 JavaScript 项目添加智能提示和类型检查

基于 JSDoc JSDoc 是目前最通用 JavaScript API 文档生成器,根据其语法编写代码注释,可以十分方便地自动生成文档。...JSDoc 注释使得阅读和理解代码更加方便(代码交接时再也不用抓狂了,当然前提是注释写得好),也保障了开发时体验并且降低了很多运行时才能发现数据类型方面的 bug。...基于 TypeScript 类型声明文件 除了使用 JSDoc 提前声明类型,更为激进做法是直接使用微软开发 TypeScript,为整个项目带来完善静态类型检查。...不严格地来说,ts 类型声明文件就像用 TypeScript 语法将 JSDoc 注释重写了一遍并提取到了单独文件中。...VSCode 更是将二者作了融合,当你二者混用时候,可以直接在 JSDoc 注释中直接使用 ts 类型声明文件中定义 interface 和 class 等。

3.2K20

不是Typescript用不起,而是JSDoc更有性价比?

而 Stack Overflow 发布 2023 年开发者调查报告也显示,JavaScript 连续 11 年成为最流行编程语言,使用占比达 63.61%,TypeScript 则排名第五,使用占比..._clock = clock; } } 在实践中,多用于配合 jsdoc2md 等工具,自动生成 API 文档等。...随着前后端分离开发范式开始流行,前端业务逻辑也日益复杂,虽然不用为每个应用生成对外 API 文档,但类型安全变得愈发重要,开发者们也开始尝试在业务项目中使用 jsdoc。...类型声明定义成 TS 风格,更是支持了在 JSDoc 注释类型声明中动态引入并解析 TS 类型能力。...在通常情况下,ProtoBuf(Protocol Buffers)设计思想是先定义 .proto 文件,然后使用编译器生成对应代码(例如 Java 类和 d.ts 类型定义)。

28910

JSDoc还需要TypeScript

如果你在编写CLI脚本,你可以求助于Deno(它支持TypeScript,开箱即用),但是你需要设置你IDE来理解DenoAPI,而且混合和匹配Deno和node并不总是那么容易。...一旦你在本地完成了所有工作,你就需要考虑如何分发你代码。你会检查你编译.js文件吗?你会创建一个CI管道来自动编译你.ts文件吗?如果你在写一个库,你如何发布你库,以便它可以被其他项目使用?...你可以通过使用JSDoc在JavaScript中获得TypeScript所有好处 TypeScript所提供是一个静态类型系统。这意味着类型信息在运行代码中没有影响。...」 较少人知道是,JSDoc是你充分使用TypeScript所需要。...建议 所以现在我建议是这样: 当你正在做一个有编译步骤项目时,使用TypeScript没有什么坏处 但是如果你不需要编译步骤,那么坚持使用JSDoc类型注释可能更容易。

27620

用什么策略把你 JavaScript 迁移到 TypeScript

我们仅从 JavaScript 文件开始,然后将越来越多文件切换到 TypeScript。 我们可以继续使用普通 JavaScript,并通过 JSDoc 注释添加类型信息,直到全部完成为止。...-565020e49c88) 策略2:将类型信息添加到纯 JavaScript 文件 这个方法工作方式如下: 我们将继续使用当前构建架构。...我们运行 TypeScript 编译器,但仅作为类型检查器(编译器选项 --noEmit)实用。 通过 JSDoc 注释(请参见下面的示例)和类型定义文件添加类型信息。...现在我们甚至可以生成类型文件(文件扩展名为 .d.ts)。...以下是通过 JSDoc 注释为普通 JavaScript 指定静态类型方式: /** * @param {number} x - A number param.

74710

TypeScript 5.3

导入属性 TypeScript 5.3支持导入属性提案最新更新。 导入属性一个用例是运行库提供有关模块预期格式信息。...通常这些都是不必要比较,但您可能更喜欢它作为一种风格,或者避免围绕JavaScript真实性某些问题。 无论如何,以前TypeScript在执行收缩时无法识别这样表单。...首选设置 type 自动导入 以前,当TypeScript为类型位置中内容生成自动导入时,它会根据您设置添加type修饰符。...通过跳过JSDoc解析进行优化 当通过tsc运行TypeScript时,编译器现在将避免解析JSDoc。...因为不是每个使用TypeScript工具都需要存储JSDoc(例如typescript-eslint和Prettier),所以这种解析策略已经作为API本身一部分出现。

20110

JSDoc 真能取代 TypeScript

我们总得先了解下 JSDoc: 可能大家认为 JSDoc 是这个东西: 在代码注释上加上类型标识,然后通过 jsdoc 命令行工具,就可以直接生成文档。...比如这样文档: 确实,这个是 JSDoc 最初含义。 但我们说 JSDoc 并不是这个,而是 TS 基于 JSDoc 语法实现,在注释里给代码添加类型语法。...然后安装 typescript: npm install --save-dev typescript 创建 tsconfig.json 文件: npx tsc --init 生成 tscconfig.json...然后我们开启 dts: 再编译: npx tsc 可以看到同样能产出 d.ts 类型声明文件: 而这时候产物 JS 代码和源码差别不大: 因为本来 JSDoc 就是在注释,类型检查也好、生成...而且这样也能利用 ts 类型提示和检查能力。 所以很多人就说 svelte 抛弃了 ts。 这叫抛弃么? 并不是,JSDoc 只是另一种使用 ts 方式而已。

31930

我们如何为 JavaScript 客户端减半模块化 AWS SDK 发布规模

为了帮助客户,服务船提供了广泛服务和运营文档。我们在 JSDoc 评论中添加此文档。在我们 TSConfig 设置中,我们在每个分发中都发货了多余注释。...复制代码 Bash 我们从*.d.ts文件中删除了注释 为了支持使用旧版本类型脚本客户,我们使用 downlevel-dts 将具有新类型脚本功能代码转换为使用等效旧功能代码下级类型。...此功能在下级类型中添加重复注释,从而增加发布规模。...复制代码 Bash 因此,使用 4.0 以上 TypeScript 版本客户不会在其 IDE 中看到 JSDoc 评论,尽管下级类型将起作用。...为了确保我们防止腹胀偷偷溜回来, 我们计划添加 CI 来检查发布大小。 我们还没有缩小实际源代码大小。例如,API 呼叫通用功能 将使源代码大小减少 ±0.5%。

2.3K20

不需要TypeScript,JS+JSDoc够了?大佬说我想多了

其次,这两者并不冲突,我个人在写 TypeScript 时候也会写对应 JSDoc,因为 TypeScript 类型没法有更多注释和描述。...TypeScript 生态更繁荣,对于普通开发者和普通项目而言,使用 JSDoc 开发和维护成本可能会比 TypeScript 更高。...李振:理论上也是可行,但与 TypeScript 相比,它仍然存在一些限制: 静态类型检查完整性:JSDoc 注释是基于注释方式,而不是直接嵌入到语言中,因此它类型检查可能不如 TypeScript...工具支持差异:尽管一些工具和编辑器可以利用 JSDoc 注释进行类型检查,但与 TypeScript 相比,它们功能和智能感知可能有所限制。...而使用 JavaScript + JSDoc 可能需要更多手动工作来编写和维护类型注释

31010

Airbnb 是如何从 JavaScript 迁移到 TypeScript

可以使用 jscodeshift、TypeScript API、字符串替换或其它 AST 修改工具来进行代码转换。 在每一个步骤之后,我们会检查 Git 历史中是否有任何更改并提交它们。...`args: ${arguments}`); return tsrif * dnoces;} ts-migrate 在上面的示例中做了 3 个转换: 反转了所有标识符 first -> tsrif 函数声明添加了类型...jscodeshift 是一个使用 recast 包将抽象语法树(AST)转换回字符串工具。通过使用 toSource() 函数,我们可以直接更新文件源代码。...下一类插件是基于 TypeScript AST 插件。...我们没有使用这个注释,因为它之前不支持.ts/.tsx 文件,但它也可以在迁移过程中成为一个很好中间阶段助手。 TypeScript 3.9 版本引入了 @ts-expect-error 注释

1.5K20

如何查看jsplumb.jsAPI文档(YUIdoc基本使用)

jsdoc风格注释语句转换成静态网站式离线文档,所以你可以通过定制模板来为最终生成文档增加不同主题样式。...jsdoc风格通常都会有IDE插件直接生成(vscode和sublime里肯定是有的,因为我自己天天用),最常见是函数声明注释,YUIdoc中可以识别的所有语法可以查看官方提供【YUIdoc支持注释语法...】: //jsdoc风格注释 /** * My method description....,例如你工程是基于Typescript开发,就可以使用yuidoc ....如果你开发是一个工具库,需要生成完备API文档,为了不影响源码阅读和开发,可以像jsplumb.js那样将注释语句单独写在一个文件中,因为是一个自动化工具,也没什么太多可讲,有需要朋友直接浏览一下官网就可以很容易地使用

2.1K00

TypeScript如何工作

相信大家对于如何在项目中使用 TypeScript 已经轻车熟路,本文就来探讨简单探讨一下 TypeScript如何工作,以及有哪些工具帮助它实现了这个目标。...; 绑定器遍历 AST 语法树,生成一系列 Symbol,并将这些 Symbol 连接到对应节点上; 检查器再次扫描 AST,检查类型,并将错误收集起来; 发射器根据 AST 生成 JavaScript...一个源文件也是一个 Node —— SourceFile,它是 AST 根节点。 关于如何从源码生成 AST,以及从 AST 生成最终代码,相关理论很多,本文也不再赘述。...通常用 JS/TS 写成,可以获取到 VSCode API,因此可以监听 VSCode 传过来事件,或者 VSCode 发送通知。 语言服务器。...由于 babel 自身并不具备打包功能,所以直接在命令行中调用 babel 命令用处不大,本节主要讨论如何在 webpack 中使用 babel 处理 typescript

5.4K30

TypeScript 之父简介:TS Anders Hejlsberg: Introducing TypeScript参考资料TypeScript入门指南(JavaScript超集)

核心TypeScript编译器 语法分析器(Parser): 以一系列原文件开始, 根据语言语法, 生成抽象语法树(AST) 联合器(Binder): 使用一个Symbol将针对相同结构声明联合在一起...语法分析器(Parser)生成抽象语法树(AST)Node. 这些仅为用户输出抽象表现,以树形式。...一个SourceFile对象表示一个给定文件AST并且带有一些额外信息如文件名及源文件内容。 然后,联合器(Binder)处理AST节点,结合并生成Symbols。...生成SourceFile(还带有它Symbols们)是通过调用createSourceFile API。...任何出现在这行之后注释都属于下一个令牌。源文件第一个令牌拥有所有的初始琐碎内容,并且最后面的一系列琐碎内容会添加到end-of-file令牌上。 对于大多数普通用户,注释是“有趣”琐碎内容。

2.1K20
领券