使用 JSDoc 标注 Promise 类型可提升 JavaScript 代码的可读性和维护性。1. 用 @returns {Promise} 明确函数返回值类型,如 {Promise},使编辑器能推断异步结果结构;2. 用 @param {Promise} 注解参数类型,如接收字符串数组 Promise 的函数,明确要求传入 resolve 为 string[] 的 Promise;3. 支持多种泛型形式,包括 Promise、Promise、Promise 和 Promise
在 JavaScript 中使用注解(如 JSDoc)标注 Promise 对象,可以帮助编辑器和团队成员更好地理解函数返回值的类型,尤其是在异步操作中。虽然 JS 是动态类型语言,但通过 JSDoc 可以实现类似静态类型的提示效果。
e 返回类型当你有一个返回 Promise 的函数时,可以用 @returns {Promise
/**
* 获取用户信息
* @returns {Promise<{id: number, name: string}>} 用户对象的 Promise
*/
function fetchUser() {
return fetch('/api/user').then(res => res.json());
}
这样 VSCode 或 WebStorm 就能识别 fetchUser().then(user => user.name) 中 user 的结构,提供自动补全和类型检查。
如果函数接收一个 Promise 类型的参数,可以使用 @param {Promise
/**
* 处理数据 Promise
* @param {Promise} dataPromise - 字符串数组的 Promise
* @returns {Promise} 拼接后的字符串
*/
async function processList(dataPromise) {
const list = await dataPromise;
return list.join(', ');
}
这种写法让调用者清楚知道传入的参数应是一个 resolve 为字符串数组的 Promise。
Promise 内部类型可以是任意合法的 JSDoc 类型:
即使项目是纯 JS,启用 checkJs(在 tsconfig.json 中)或使用支持 JSDoc 的编辑器,可以让这些注解真正起作用,捕获潜在类型错误。
基本上就这些。正确标注 Promise 类型,能显著提升代码可读性和维护性,尤其在复杂异步逻辑中。不复杂但容易忽略。