首页 > 解决方案 > 为什么找不到画布(Typesrcpt)

问题描述

我尝试在画布上添加一个 eventListener。但是使用代码我得到了这个错误:

TS2339: Property 'cvs' does not exist on type 'cvsClick'.

这是打字稿

cvs:HTMLCanvasElement;
ctx:CanvasRenderingContext2D;

class cvsClick {

    constructor() {
        let cvs = <HTMLCanvasElement>document.getElementById("background");
        let ctx = cvs.getContext("2d");

        this.cvs = cvs;
        this.ctx = ctx;

        this.cvs.addEventListener('click', console.log("canvas clicked"));
    }

}
new cvsClick();

这是HTML:

<!DOCTYPE html>
    <html>
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
      <body>
        <canvas id="background" width="780" height="480"></canvas>
        <script type="text/javascript" src="bundle.js"></script>
      </body>
    </html>

也许我的 EventListener 也不正确。

标签: typescriptcanvastypeerroraddeventlistener

解决方案


感谢您的回答,它的工作原理。错误消失了。我仍然必须将事件侦听器更改为

        this.cvs.addEventListener('click', () => {
            console.log("canvas clicked");
        });

推荐阅读