javascript - 流类型和 DOM 对象

标签 javascript dom gulp ecmascript-6 flowtype

我正在尝试使用 flowtype 来检查一些文件。

不幸的是我无法让它与 dom 对象一起工作:

我有这个代码

this.canvasContext = this.canvas.getContext('2d');

..返回此错误:

src/CanvasManager.js:43
 43:         this.canvasContext = this.canvas.getContext('2d');
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call of method `getContext`. Function cannot be called on
 43:         this.canvasContext = this.canvas.getContext('2d');


                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ HTMLCanvasElement

所以基本上流程可以识别 HTMLCanvasElement,但似乎不知道它有一个 getContext 方法。

我错过了什么吗? 如果没有,有什么方法可以扩展 DOM 定义吗?

创建我自己的 HTMLCanvasElement 定义将导致名称不匹配:

src/PlayingField.js:23
 23:     constructor(gameController: GameController, canvas: HTMLCanvasElement) {
                                                             ^^^^^^^^^^^^^^^^^ HTMLCanvasElement. This type is incompatible with
 23:     constructor(gameController: GameController, canvas: HTMLCanvasElement) {
                                                             ^^^^^^^^^^^^^^^^^ HTMLCanvasElement

最佳答案

这似乎是一个错误 should be fixed自 v0.18.1 起。

关于javascript - 流类型和 DOM 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34019498/

相关文章:

css - 缓存在 SASS 文件中链接的破坏图像

javascript - 如何确保干净的 Firebase 子路径?

javascript - 在 C# 中解析 JSON 结果?

javascript - Facebook 如何在不重新加载页面或不使用# 或的情况下更改浏览器地址栏中的 URL?

java - 如何在使用 documentBuilderFactory 解析时管理 xml 中的嵌套循环

javascript - 对 VueJS 生命周期钩子(Hook)的误解

javascript最短正则表达式格式化帐号

javascript - 自定义事件数据中未定义 WoopraTracker

html - 将十六进制值转换为过滤器属性

TypeScript Watch - 删除已删除的目标 JS 文件