如何在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
相关产品推荐
相关产品推荐

