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

注意额外的括号 - 它们是类型转换所必需的