javascript - 如何让 VS Code 智能感知识别附加到现有类的新方法
问题描述
我正在尝试在 CanvasRenderingContext2D 类(它是画布元素的上下文对象)上定义新方法。例如,
CanvasRenderingContext2D.prototype.dot=function(x, y) {
....
}
将是一种在 (x, y) 坐标处绘制具有特定样式的点的新方法(函数内的确切代码与我的问题无关)。我的问题是,如何让 VS 代码智能感知这现在是 CanvasRenderingContext2D 的新方法?我试过像
/**
* Draws a dot at the (x, y) coordinate
* @memberof CanvasRenderingContext2D#
* @param {number} x
* @param {number} y
*/
但它不起作用,当我写下 CanvasRenderingContext2D 的实例时,智能感知中仍然只显示原始成员。我如何使它工作?谢谢!
解决方案
您需要像这样使用自定义@typedef:
/**
* Draws a dot at the (x, y) coordinate
* @param {number} x
* @param {number} y
*/
const dot=function(x, y) {
}
CanvasRenderingContext2D.prototype.dot = dot;
/** @typedef {CanvasRenderingContext2D & { dot: dot }} MyCanvasRenderingContext2D */
/** @type {MyCanvasRenderingContext2D} */
const o = new CanvasRenderingContext2D();
o.dot();
推荐阅读
- python - 如何从用户那里获取类的名称,然后创建具有相同名称的类
- javascript - 更改字体大小时在文本区域内居中文本
- c++ - 使用 minGW 和 VSCode 运行简单的 C++ 程序时找不到 libstdc++-6.dll
- python - 如何按值字符串打印嵌套字典中的键值对
- javascript - ML5,情绪分析:未捕获(承诺中)类型错误:无法读取未定义的属性“the”
- vba - 俄语单词的计数频率
- javascript - 需要帮助以减少代码(我不是专家)
- c - 错误:多重定义和第一次在这里定义
- python - PIL.ImageDraw.arc 什么也没画
- python - 需要帮助过滤和合并两个熊猫数据框