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

Jam*_*May 1 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 );
Run Code Online (Sandbox Code Playgroud)

这是相关的代码:

var /** @type {HTMLCanvasElement|Element} */ poolCanvas = document.createElement('canvas');

var /** @type {CanvasRenderingContext2D} */ ctx;

...

ctx.drawImage( poolCanvas, rect.x, rect.y );
Run Code Online (Sandbox Code Playgroud)

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

我在这里做错了什么?

Cha*_*rth 5

您需要将调用类型转换为document.createElement

var poolCanvas = 
    /** @type {!HTMLCanvasElement} */ (document.createElement('canvas'));
Run Code Online (Sandbox Code Playgroud)

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