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

如何在JSDoc中指定参数为其他函数返回类型?无需@typedef

在JSDoc中复用函数返回值类型(无需额外typedef)

完全可以实现,JSDoc支持TypeScript的ReturnType工具类型,无需定义额外的@typedef就能直接复用其他函数的返回值类型,具体写法如下:

方案1:导入函数后直接引用

先在src/b.js中导入request函数,然后在JSDoc注解里使用ReturnType<typeof request>指定参数类型:

import { request } from "./a";

/**
 * @param {ReturnType<typeof request>} response
 * @returns {void}
 */
export function handleResponse(response) {}

方案2:直接引用模块类型(无需导入函数)

如果只是需要类型而不需要在代码中调用request函数,可以直接通过模块引用获取函数类型:

/**
 * @param {ReturnType<typeof import('./a').request>} response
 * @returns {void}
 */
export function handleResponse(response) {}

说明

  • JSDoc兼容TypeScript的核心工具类型,ReturnType<T>会提取函数类型T的返回值类型,typeof request则会获取request函数的类型,二者结合就实现了和TypeScript中ReturnType<typeof request>完全相同的效果。
  • 要让编辑器(如VS Code)正确识别该类型,需确保开启了JavaScript的类型检查:在项目根目录的jsconfig.json中添加"checkJs": true配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 17:23:28