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

如何为跨文件返回的User对象创建并导入JSDoc类型?

为User对象创建JSDoc类型并跨文件导入的方法

1. 在user.model.js中定义类型并导出函数

首先在模型文件里,用JSDoc的@typedef定义User类型,同时给返回该类型的getUser函数加上类型标注:

/**
 * @typedef {Object} User
 * @property {string} id - 用户唯一标识
 * @property {string} name - 用户姓名
 * @property {string} email - 用户邮箱
 * @property {number} createdDate - 用户创建时间戳
 */

/**
 * 获取用户对象
 * @returns {User} 返回用户实例
 */
function getUser() {
  return {
    id: "ASwsd122Wqwe1",
    name: "sam",
    email: "sam.joe@yahoo.uk",
    createdDate: 1721323231123
  };
}

// 导出函数供其他文件调用
module.exports = { getUser };

2. 在其他文件中导入并使用User类型

在需要使用User类型的文件里,通过JSDoc的import语法跨文件引入类型,再给变量加上类型标注:

// 导入User类型
/** @typedef {import('./user.model.js').User} User */

// 导入getUser函数
const { getUser } = require('./user.model.js');

/** @type {User} */
const user = getUser();

// 此时编辑器会识别user的类型,提供属性提示
console.log(user.name);

如果是ES模块环境(用import/export),写法类似:
user.model.js里的导出改成export function getUser() { ... },其他文件导入时:

/** @typedef {import('./user.model.js').User} User */
import { getUser } from './user.model.js';

/** @type {User} */
const user = getUser();

这样不管是CommonJS还是ES模块,编辑器都能识别user的类型结构,提供代码提示和类型校验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 21:57:39