如何为扩展的原生对象方法添加JSDoc描述以在VS Code中显示?
为原生对象扩展方法添加JSDoc并在VS Code中显示提示
直接给String.prototype这类原生对象的扩展方法加JSDoc,VS Code的智能提示可能无法正确关联到原生类型上。要解决这个问题,需要结合JSDoc的类型扩展语法,告诉VS Code的类型系统原生对象新增了该方法:
实现步骤
- 用JSDoc扩展原生对象的接口,在接口中定义新增方法并添加注释
- 实现原生对象原型上的方法
示例代码
// 扩展String类型的接口,声明新增方法 /** * @interface * @extends String */ interface String { /** * 将字符串首字母转为大写,其余字符保持原样 * @returns {string} 首字母大写后的新字符串 */ capitalize(): string; } // 实现capitalize方法 String.prototype.capitalize = function () { return this.charAt(0).toUpperCase() + this.slice(1); }; console.log('foo'.capitalize()); // Foo
补充说明
- 如果项目未启用TypeScript,需在VS Code设置中开启
javascript.implicitProjectConfig.checkJs(路径:文件→首选项→设置→搜索该选项),确保VS Code能识别接口扩展的类型信息 - 也可在方法实现上添加
@this标注,进一步明确上下文类型:
/** * 将字符串首字母转为大写 * @this {string} * @returns {string} 首字母大写后的新字符串 */ String.prototype.capitalize = function () { return this.charAt(0).toUpperCase() + this.slice(1); };
内容的提问来源于stack exchange,提问作者fjexe
相关产品推荐
相关产品推荐

