【发布时间】:2015-02-11 17:31:31
【问题描述】:
我在使用 WebStorm 遇到以下问题:
/** @type {HTMLCanvasElement} */
var buffered_canvas = document.createElement("canvas");
buffered_canvas.width = 256;
buffered_canvas.height = 256;
当我将 buffered_canvas 注释为 HTMLCanvasElement 类型时,它抱怨 createElement 返回的 HTMLElement 无法分配给 HTMLCanvasElement。
/** @type {HTMLElement} */
var buffered_canvas = document.createElement("canvas");
buffered_canvas.width = 256;
buffered_canvas.height = 256;
当我将其更改为 HTMLElement 类型时,它会抱怨 HTMLElement 上未定义宽度和高度属性。
我该如何正确地做到这一点?
另外——我是 JavaScript 新手,很难找到任何真正的规范,例如 HTMLElement 及其具有的属性或 createCanvas 的方法签名以及它返回的类型。有时我会在 MDN 上找到不错的东西,但它们通常不包含方法签名或太多类型信息。这东西有什么好的资源吗?
谢谢
【问题讨论】:
-
我会说你不必要地让你的工作变得复杂。 JavaScript 不是强类型的,Java 也不是。
-
嗯,我的项目目前是 20K 行代码,所以很复杂。我正在使用 Closure Compiler 并键入注释来检查错误。我承认我是 WebStorm 的新手,但它内置的错误检查已经帮助我发现了一些错误。但是,它也列出了数百个类似上述的愚蠢错误。
标签: javascript types webstorm