mcpField
J
jsdoc-tsdoc

jsdoc-tsdoc

github.com/claude-dev-suite开发4647 次安装2 天前更新
代码仓库

关于 jsdoc-tsdoc

面向 JavaScript 和 TypeScript 开发者的 API 文档编写技能,说明 JSDoc 与 TSDoc 的用途、标签和文档实践,并提供常见问题排查建议。

主要功能

  1. 01比较 JSDoc 与 TSDoc
  2. 02介绍 TSDoc 标签类别
  3. 03说明函数与接口文档写法
  4. 04列出文档反模式及改进方式
  5. 05提供注释与工具问题排查

适用场景

  1. 01为 TypeScript 公共 API 编写说明
  2. 02统一团队的文档标签用法
  3. 03排查 IDE 未显示文档的问题

MCP 相关

README 提到可通过 mcp__documentation__fetch_docs 获取 JSDoc 标签参考;未说明该技能本身如何连接 MCP。

安装

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

$npx skills add https://github.com/claude-dev-suite/claude-dev-suite --skill jsdoc-tsdoc

安装后在 Claude Code 中输入/jsdoc-tsdoc确认已加载。

附带文件advanced.md

详细介绍

JSDoc 和 TSDoc 文档

完整参考:有关 JavaScript 中的 JSDoc 类型注解、TypeDoc/API Extractor 配置、ESLint 插件设置和 README 模板,请参阅 advanced.md。

深入了解:使用 mcp__documentation__fetch_docs,并指定技术:jsdoc,获取全面的标签参考。

何时不应使用此技能

  • 纯 JavaScript 项目 - 使用 jsdoc 技能了解 JavaScript 专用的 JSDoc 模式
  • 代码注释(非 API) - TSDoc 用于公共 API 文档,而非内联代码注释
  • 从代码自动生成文档 - 直接使用 TypeDoc 或 API Extractor 工具

TSDoc 与 JSDoc

特性JSDocTSDoc
用途JS 文档和类型仅 TS 文档
类型注解@type、@param {Type}不需要(使用 TS 类型)
标准化事实标准正式标准

TypeScript 项目请使用 TSDoc - 类型来自 TypeScript,注释用于描述行为。

函数文档

/**
 * Calculates the total price including tax.
 *
 * @remarks
 * This method uses the default tax rate unless overridden.
 * For international orders, use {@link calculateInternationalPrice} instead.
 *
 * @param basePrice - The pre-tax price in cents
 * @param taxRate - Tax rate as decimal (default: 0.1 for 10%)
 * @returns The total price including tax in cents
 *
 * @throws {@link InvalidPriceError}
 * Thrown if basePrice is negative
 *
 * @example
 * ```typescript
 * const total = calculateTotalPrice(1000, 0.08);
 * console.log(total); // 1080
 * ```
 *
 * @beta
 */
function calculateTotalPrice(basePrice: number, taxRate = 0.1): number {
  if (basePrice < 0) {
    throw new InvalidPriceError('Price cannot be negative');
  }
  return Math.round(basePrice * (1 + taxRate));
}

接口文档

/**
 * Configuration options for the HTTP client.
 *
 * @remarks
 * All timeouts are in milliseconds.
 *
 * @public
 */
interface HttpClientOptions {
  /**
   * Base URL for all requests.
   * @example 'https://api.example.com/v1'
   */
  baseUrl: string;

  /**
   * Request timeout in milliseconds.
   * @defaultValue 30000
   */
  timeout?: number;

  /**
   * Maximum number of retry attempts for failed requests.
   * @defaultValue 3
   */
  maxRetries?: number;
}

所有 TSDoc 标签

块标签
标签用法
@param name - description参数说明
@returns description返回值说明
@throws {Type} description抛出的异常
@example使用示例(代码块)
@remarks扩展说明
@see相关参考
@deprecated reason标记为已弃用
@defaultValue value默认值
@typeParam T - description泛型类型参数
修饰符标签
标签含义
@public属于公共 API
@internal内部实现
@alpha早期预览,可能会更改
@beta正在完善,API 可能会更改
@readonly只读属性
@override重写父级
内联标签
标签用法
{@link Target}链接到符号
{@link Target | text}使用自定义文本的链接
{@inheritDoc Parent.method}继承文档

反模式

反模式错误原因正确做法
在 TypeScript 中说明类型多余,类型已在签名中描述行为,而非类型
复制粘贴函数签名没有价值,且会导致不同步说明用途、边界情况和示例
复杂 API 缺少 @example用户不知道如何使用始终包含使用示例
使用 @deprecated 却不说明迁移方式用户不知道应改用什么@deprecated Use {@link newFunction} instead
没有 @throws 文档用户不知道应捕获哪些异常记录所有抛出的异常

快速故障排除

问题诊断解决方案
VS Code 悬停时不显示文档JSDoc 注释格式错误确保以 /** 开头,并使用正确的标签语法
eslint-plugin-tsdoc 报错TSDoc 语法无效按照 TSDoc 规范修正标签格式
TypeDoc 忽略注释注释位置错误将 JSDoc 放在声明正上方
{@link} 无法解析符号引用不正确使用完全限定名称或导入路径

官方参考

资源URL
TSDochttps://tsdoc.org/
JSDochttps://jsdoc.app/
TypeDochttps://typedoc.org/
API Extractorhttps://api-extractor.com/

评论

支持 Markdown