最近,用 angular 前端框架为应用登陆新增图形验证码认证,因为没有现成的插件,因而便使用canvas+js操做,也是能够正常使用,可是在编译阶段却有个报错:前端
ERROR in src/app/login/login.component.ts(84,19): error TS2339: Property 'getContext' does not exist on type 'HTMLElement'.
虽然报错,可是确实能够正常执行,非常奇怪。报错的代码为:canvas
let c = document.getElementById("myCanvas") ; let ctx = c.getContext("2d");
查看源码是有 getContext() 这个方法的。后面想是否是类型致使的呢,因而,使用类型断言(不影响代码运行,只是在编译阶段起做用)修改代码入下:bash
let c = document.getElementById("myCanvas") as HTMLCanvasElement; let ctx = c.getContext("2d");
编译正常经过。后面了解,还有另一种断言方式:前端框架
let c = <HTMLCanvasElement> document.getElementById("myCanvas") ; let ctx = c.getContext("2d");
以上都可编译经过,由于 getContext() 是在 HTMLCanvasElement 中定义的,所以,咱们须要指定类型。app
以上框架