Closure Compiler 警告 - HTMLCanvasElement 和 Element 类型不匹配
Closure Compiler warning - HTMLCanvasElement and Element types mismatch
我不知道如何清除这个警告:
WARNING - actual parameter 1 of
CanvasRenderingContext2D.prototype.drawImage does not match formal parameter
found : Element
required: (HTMLCanvasElement|HTMLImageElement|HTMLVideoElement|null)
ctx.drawImage( poolCanvas, rect.x, rect.y );
相关代码如下:
var /** @type {HTMLCanvasElement|Element} */ poolCanvas = document.createElement('canvas');
var /** @type {CanvasRenderingContext2D} */ ctx;
...
ctx.drawImage( poolCanvas, rect.x, rect.y );
我已经尝试了多种类型声明的组合,但我无法摆脱这个警告。
我做错了什么?
您需要将调用类型转换为 document.createElement
:
var poolCanvas =
/** @type {!HTMLCanvasElement} */ (document.createElement('canvas'));
注意额外的括号 - 它们是类型转换所必需的
我不知道如何清除这个警告:
WARNING - actual parameter 1 of
CanvasRenderingContext2D.prototype.drawImage does not match formal parameter
found : Element
required: (HTMLCanvasElement|HTMLImageElement|HTMLVideoElement|null)
ctx.drawImage( poolCanvas, rect.x, rect.y );
相关代码如下:
var /** @type {HTMLCanvasElement|Element} */ poolCanvas = document.createElement('canvas');
var /** @type {CanvasRenderingContext2D} */ ctx;
...
ctx.drawImage( poolCanvas, rect.x, rect.y );
我已经尝试了多种类型声明的组合,但我无法摆脱这个警告。
我做错了什么?
您需要将调用类型转换为 document.createElement
:
var poolCanvas =
/** @type {!HTMLCanvasElement} */ (document.createElement('canvas'));
注意额外的括号 - 它们是类型转换所必需的