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

使用tsd-jsdoc处理高阶函数JSDoc生成类型错误如何解决?

问题原因

你当前使用的tsd-jsdoc工具原生不支持解析@returns注释中直接声明的嵌套函数参数、返回值类型,会默认将返回的函数推导为无类型约束的(...params: any[]) => any,这是工具本身的实现缺陷,和你的npm命令配置无关。

解决方案

你可以选择以下任意一种方式解决:

  • 调整JSDoc写法适配tsd-jsdoc
    先通过@callback预定义返回的函数类型,再在@returns中引用该类型,示例写法如下:

    /**
     * @callback AddReturn
     * @param {number} b 
     * @returns {number}
     */
    
    /**
     * @param {number} a 
     * @returns {AddReturn}
     */
    const add = a => b => a + b;
    

    重新生成后即可得到你期望的类型定义结果。

  • 更换生成工具为TypeScript原生能力
    TypeScript本身对JSDoc的兼容性更好,无需修改原有注释写法即可生成正确的类型,操作步骤如下:

    1. 在项目根目录新增tsconfig.json,配置如下:
      {
        "compilerOptions": {
          "allowJs": true,
          "declaration": true,
          "emitDeclarationOnly": true,
          "outDir": "./dist",
          "rootDir": "./src"
        },
        "include": ["src/**/*"]
      }
      
    2. 将npm脚本修改为"build-types": "tsc",重新执行即可生成正确的类型定义。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:15:08