如何为猴子补丁函数添加JSDoc以启用VS Code智能提示?
如何为猴子补丁添加的JavaScript函数编写JSDoc,让VS Code智能提示正确识别
问题场景
通过猴子补丁给moment库新增了moo方法,在补丁文件lib/newmoment.js中也写了对应的JSDoc注释,但在test.js里调用moment().moo()时,VS Code的IntelliSense只能识别该方法为any类型,无法显示提前写好的注释信息。
可行解决方法
自定义命名空间扩展moment的原有类型,再给导入的moment变量指定这个扩展后的类型,就能让智能提示正确识别新增方法的JSDoc。
代码示例
补丁文件:lib/newmoment.js
/** * 扩展moment的类型,添加自定义方法的类型定义 * @namespace NewMoment * @extends moment */ /** * 自定义的moo方法,返回测试字符串 * @returns {string} 固定的测试文本 */ moment.fn.moo = function() { return "moo from monkey patch"; }; module.exports = moment;
调用文件:test.js
/** @type {import('./lib/newmoment').NewMoment} */ const moment = require('./lib/newmoment'); // 此时调用moment().moo(),VS Code会正确显示该方法的JSDoc注释 moment().moo();
内容的提问来源于stack exchange,提问作者FDEV
相关产品推荐
相关产品推荐

