类型 'CanvasRenderingContext2D | WebGLRenderingContext' 不可分配给类型 'CanvasRenderingContext2D'
Type 'CanvasRenderingContext2D | WebGLRenderingContext' is not assignable to type 'CanvasRenderingContext2D'
我已经升级到 Visual Studio 2015 Community with Typescript 1.5 Beta。我收到以下错误。
Type 'CanvasRenderingContext2D | WebGLRenderingContext' is not
assignable to type 'CanvasRenderingContext2D'
这发生在下一行
var canvas: HTMLCanvasElement = $(element).find('canvas').get(0);
var ctx: CanvasRenderingContext2D = canvas.getContext("2d");
我已将 TypeScript 工具版本设置为 1.4 和 1.5,但出现相同的错误。
从错误消息来看,getContext
的return类型似乎是一个联合类型,这意味着它是CanvasRenderingContext2D
或WebGLRenderingContext
之一。
编译器无法判断是哪一个,所以你需要帮助它:
var ctx = <CanvasRenderingContext2D> canvas.getContext("2d");
但是,如果我用最新版本的所有东西尝试这个,效果很好:
var canvas = <HTMLCanvasElement> $('#example').find('canvas').get(0);
var ctx: CanvasRenderingContext2D = canvas.getContext("2d");
所以看起来有些不对劲。
getContext
的当前定义具有值“2d”的专用签名,应该返回 CanvasRenderingContext2D
。这是三个签名...
- "2d" :
CanvasRenderingContext2D
- "experimental-webgl" :
WebGLRenderingContext
- 其他
string
: CanvasRenderingContext2D | WebGLRenderingContext
如果它不能识别传入的字符串,它应该只返回联合类型。
如果您在 getContext
后键入 (
时自动完成不建议这三个重载,则可能表明存在问题。
我已经升级到 Visual Studio 2015 Community with Typescript 1.5 Beta。我收到以下错误。
Type 'CanvasRenderingContext2D | WebGLRenderingContext' is not assignable to type 'CanvasRenderingContext2D'
这发生在下一行
var canvas: HTMLCanvasElement = $(element).find('canvas').get(0);
var ctx: CanvasRenderingContext2D = canvas.getContext("2d");
我已将 TypeScript 工具版本设置为 1.4 和 1.5,但出现相同的错误。
从错误消息来看,getContext
的return类型似乎是一个联合类型,这意味着它是CanvasRenderingContext2D
或WebGLRenderingContext
之一。
编译器无法判断是哪一个,所以你需要帮助它:
var ctx = <CanvasRenderingContext2D> canvas.getContext("2d");
但是,如果我用最新版本的所有东西尝试这个,效果很好:
var canvas = <HTMLCanvasElement> $('#example').find('canvas').get(0);
var ctx: CanvasRenderingContext2D = canvas.getContext("2d");
所以看起来有些不对劲。
getContext
的当前定义具有值“2d”的专用签名,应该返回 CanvasRenderingContext2D
。这是三个签名...
- "2d" :
CanvasRenderingContext2D
- "experimental-webgl" :
WebGLRenderingContext
- 其他
string
:CanvasRenderingContext2D | WebGLRenderingContext
如果它不能识别传入的字符串,它应该只返回联合类型。
如果您在 getContext
后键入 (
时自动完成不建议这三个重载,则可能表明存在问题。