gpt4 book ai didi

typescript - 类型 'CanvasRenderingContext2D | WebGLRenderingContext' 不可分配给类型 'CanvasRenderingContext2D'

转载 作者:搜寻专家 更新时间:2023-10-30 20:41:46 30 4
gpt4 key购买 nike

我已经升级到 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 的返回类型似乎是一个联合类型,这意味着它要么是 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。这是三个签名...

  1. “2d”:CanvasRenderingContext2D
  2. “实验性 webgl”:WebGLRenderingContext
  3. 其他 string : CanvasRenderingContext2D | WebGLRenderingContext

如果它不能识别传入的字符串,它应该只返回联合类型。

如果在 getContext 之后键入 ( 时自动完成不建议这三个重载,则可能表示存在问题。

Auto-Completion for getContext with 2d argument

关于typescript - 类型 'CanvasRenderingContext2D | WebGLRenderingContext' 不可分配给类型 'CanvasRenderingContext2D',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32115328/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com