You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从JavaScript生成TypeScript定义时如何保留枚举成员的文档?

解决JSDoc @enum生成.d.ts时成员注释丢失的问题

TypeScript在从JS文件生成.d.ts时,对JSDoc @enum的成员注释支持存在局限,不过可以通过两种方式解决:

方法一:改用TypeScript原生枚举(推荐)

如果能把JS文件转为TS文件,直接用TS原生枚举并给每个成员加JSDoc注释,生成的.d.ts会完整保留所有注释:

/**
 * 表示方向的枚举类型
 */
enum Direction {
    /**
     * 向上方向
     */
    Up = 1,
    /**
     * 向下方向
     */
    Down = 2,
    /**
     * 向左方向
     */
    Left = 3,
    /**
     * 向右方向
     */
    Right = 4
}

方法二:调整JS文件的JSDoc注释格式

如果必须保持JS文件格式,要放弃@enum的简化写法,改用@typedef搭配@type的完整语法,把成员注释写在@property的描述里:

/**
 * @typedef {Object} Direction
 * @property {number} Up - 向上方向
 * @property {number} Down - 向下方向
 * @property {number} Left - 向左方向
 * @property {number} Right - 向右方向
 */
/** @type {Direction} */
const Direction = {
    Up: 1,
    Down: 2,
    Left: 3,
    Right: 4
};

module.exports = Direction;

同时确保tsconfig.json里的关键配置:

{
  "compilerOptions": {
    "declaration": true,
    "removeComments": false,
    "allowJs": true
  }
}

这样生成的.d.ts会完整保留枚举和所有成员的注释。

内容的提问来源于stack exchange,提问作者Sam Fischer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 02:45:31