我已使用Typescript 1.5 Beta升级到Visual Studio 2015社区。我收到以下错误。
输入'CanvasRenderingContext2D | WebGLRenderingContext'不是 可分配给'CanvasRenderingContext2D'
类型
这发生在以下一行
var canvas: HTMLCanvasElement = $(element).find('canvas').get(0);
var ctx: CanvasRenderingContext2D = canvas.getContext("2d");
我已将TypeScript工具版本设置为1.4和1.5并获得相同的错误。
答案 0 :(得分:12)
从错误消息中,getContext
的返回类型似乎是联合类型,这意味着它是CanvasRenderingContext2D
或WebGLRenderingContext
之一。
编译器无法分辨哪个,所以你需要帮助它:
var ctx = <CanvasRenderingContext2D> canvas.getContext("2d");
但是,如果我尝试使用最新版本的所有内容,这可以正常工作:
var canvas = <HTMLCanvasElement> $('#example').find('canvas').get(0);
var ctx: CanvasRenderingContext2D = canvas.getContext("2d");
所以看起来事情并不是很正确。
getContext
的当前定义具有值&#34; 2d&#34;的专用签名。应该给你一个CanvasRenderingContext2D
。以下是三个签名......