2015-08-20 3 views
4

Я обновился до сообщества Visual Studio 2015 с помощью бета-версии Scriptcript 1.5. Я получаю следующую ошибку.Тип 'CanvasRenderingContext2D | WebGLRenderingContext 'не может быть присвоен типу' CanvasRenderingContext2D '

Тип 'CanvasRenderingContext2D | WebGLRenderingContext»не присваиваемые типа„CanvasRenderingContext2D“

Это происходит на следующей строке

var canvas: HTMLCanvasElement = $(element).find('canvas').get(0); 
var ctx: CanvasRenderingContext2D = canvas.getContext("2d"); 

Я дал машинопись инструменты версии как для 1.4 и 1.5 и получить ту же ошибку.

ответ

10

Из сообщения об ошибке тип возврата 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

Это должно дать вам обратно только союз если он не распознает переданную строку.

Если ваше автозаполнение не предполагает, что эти три оверлоа ds, когда вы вводите ( после getContext, что может указывать на проблему.

Auto-Completion for getContext with 2d argument

Смежные вопросы