Closure Compiler警告 - HTMLCanvasElement和Element类型不匹配

时间:2016-08-15 09:45:46

标签: google-closure-compiler

我不确定如何清除此警告:

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 );

我尝试了各种类型声明的组合,但我无法摆脱这种警告。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:4)

您需要输入转换为document.createElement

的电话
var poolCanvas = 
    /** @type {!HTMLCanvasElement} */ (document.createElement('canvas'));

注意额外的parens - 它们是类型转换

所必需的