今天分享一下最近遇到的一个问题
用 angular 前端框架为应用登录新增图形验证码认证,由于没有现成的插件,于是便使用canvas+js操作,也是可以正常使用,但是在编译阶段却有个报错:
ERROR in src/app/login/login.component.ts(84,19): error TS2339:
Property \'getContext\' does not exist on type \'HTMLElement\'.
虽然报错,但是确实可以正常执行,很是奇怪。报错的代码为:
let c = document.getElementById(\"myCanvas\") ;
let ctx = c.getContext(\"2d\");
查看源码是有 getContext() 这个方法的。后面想是不是类型导致的呢,于是,使用类型断言(不影响代码运行,只是在编译阶段起作用)修改代码入下:
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 中定义的,因此,我们需要指定类型。
继续阅读与本文标签相同的文章
上一篇 :
12年后,索尼重启机器人业务
下一篇 :
没有人工智能的硬件,未来可能不配叫智能硬件
-
人工智能社会实验研究全面展开
2026-05-18栏目: 教程
-
OpenAI机械手“学习”解开三阶魔方技术
2026-05-18栏目: 教程
-
5G时代,能给我们带来什么样的生活改观
2026-05-18栏目: 教程
-
第六届世界互联网大会将首次启用新展馆
2026-05-18栏目: 教程
-
世界首款在BCH区块链上运行的沙盒游戏——RealmX
2026-05-18栏目: 教程
