如何为发布至npm的JavaScript库导出JSDoc类型
可行,无需生成d.ts文件就能通过JSDoc让TypeScript识别JS模块类型
解决步骤:
配置
my-module的package.json
在my-module的package.json中添加types字段,指定你的JS入口文件——这是让TypeScript直接读取JS文件内JSDoc的核心配置:{ "name": "my-module", "main": "index.js", "types": "index.js" // 核心配置:告诉TS从该JS文件读取类型声明 }完善JSDoc标注(按需)
你现有JSDoc已满足函数类型的基本识别需求,如果需要让User类型也能被外部直接导入使用,可给@typedef添加@export标签:// my-module/index.js /** * @typedef {Object} User * @property {string} name * @property {string} surname * @property {number} age * @export User // 允许外部导入该类型 */ /** * 创建用户实例 * @param {string} name * @param {string} surname * @param {number} age * @returns {User} */ const NewUser = (name, surname, age) => { return { name, surname, age }; }; export default NewUser;检查消费项目的tsconfig配置
在导入my-module的项目(即app.js所在项目)的tsconfig.json中,确保开启以下必要选项:{ "compilerOptions": { "moduleResolution": "Node", "esModuleInterop": true, "allowJs": true, // 允许TypeScript处理JS文件 "checkJs": true // 启用JS文件的类型检查(可选,建议开启以获得完整类型提示) } }
完成以上配置后,TypeScript就能直接解析my-module中的JSDoc类型,不会再抛出7016错误,全程无需额外生成d.ts文件或增加编译步骤。
内容的提问来源于stack exchange,提问作者Battal
相关产品推荐
相关产品推荐

