为什么我不能使用打字稿为我的自定义界面扩展 HTMLElement 类型?

用户7854319

我正在使用画布typescript和扩展HTMLElement自定义界面,但它Type 'HTMLElement' has no properties in common with type 'MyCanvas'在终端中显示我该如何解决?
顺便说一下,版本typescript是3.5.3

index.ts

import { MyCanvas } from './interface/canvas'
function init (): void {
    const canvas: MyCanvas = document.getElementById('canvas')
    const ctx = canvas.getContext('2d');

    canvas.width = 1000
    canvas.height = 1000
}

canvas.ts

export interface MyCanvas extends  HTMLElement {
    width?:number;
    height?: number;
    getContext: Function;
}
马切伊·西科拉

问题是document.getElementById返回HTMLElement并且这个接口不能用作更广泛的接口。您可以使用MyCanvasasHTMLElement因为MyCanvas包含所有属性,HTMLElement但不能以其他方式使用。

通常修复很简单,您需要通过as关键字断言类型以告诉编译器该函数返回应该断言为该类型。

const canvas = document.getElementById('canvas') as MyCanvas

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

打字稿:类型“ HTMLElement”上不存在属性“ src”

来自分类Dev

打字稿-类型“ HTMLElement”上不存在属性“ scrollY”

来自分类Dev

为什么我不能使用自定义Scala类型(Jerkson)解析此JSON字符串?

来自分类Dev

类型“HTMLElement”上不存在打字稿错误属性。任何

来自分类Dev

为什么我的自定义帖子类型不使用我的自定义模板?

来自分类Dev

ReactJS Mapbox-gl无效类型:“容器”必须为String或HTMLElement

来自分类Dev

Vue.js mapbox-gl错误:类型无效:“容器”必须为String或HTMLElement

来自分类Dev

ReactJS Mapbox-gl无效类型:“容器”必须为String或HTMLElement

来自分类Dev

打字稿:使用“ this”获取自定义界面的类型?

来自分类Dev

在TypeScript中扩展HTMLElement

来自分类Dev

如何区分原生HTMLElement和创建/自定义的HTMLElement?

来自分类Dev

打字稿推断的类型不能使用

来自分类Dev

类型'HTMLElement |的参数 “ null”不可分配给“ Element”类型的参数。类型'null'不能分配给类型'Element'.ts(2345)

来自分类Dev

C ++语法问题-为什么我不能使用逗号分隔不同类型的变量定义

来自分类Dev

为什么此项目中包含打字稿自定义类型定义?

来自分类Dev

为什么我的Wordpress简码功能不能用于我的自定义帖子类型?

来自分类Dev

HTMLElement突然未定义

来自分类Dev

打字稿:将 HTMLElement 转换为节点

来自分类Dev

为什么我必须强制转换为类型参数,而不能使用受约束的类型?

来自分类Dev

使用cheerio的HTMLElement.querySelector()

来自分类Dev

使用cheerio的HTMLElement.querySelector()

来自分类Dev

为什么我不能使用Optional <>调用Set方法:对于Optional类型,方法setName是未定义的?

来自分类Dev

属性“ noUiSlider”在类型“ HTMLElement”上不存在

来自分类Dev

HTMLElement类型上不存在selectedIndex属性

来自分类Dev

类型“ HTMLElement”上不存在属性“ connectedCallback”

来自分类Dev

如何找出从HTMLElement派生的DOM元素节点类型?

来自分类Dev

属性“ noUiSlider”在类型“ HTMLElement”上不存在

来自分类Dev

“HTMLElement”类型上不存在属性“getContext”

来自分类Dev

为什么我不能使用通用类型来实现非通用签名

Related 相关文章

  1. 1

    打字稿:类型“ HTMLElement”上不存在属性“ src”

  2. 2

    打字稿-类型“ HTMLElement”上不存在属性“ scrollY”

  3. 3

    为什么我不能使用自定义Scala类型(Jerkson)解析此JSON字符串?

  4. 4

    类型“HTMLElement”上不存在打字稿错误属性。任何

  5. 5

    为什么我的自定义帖子类型不使用我的自定义模板?

  6. 6

    ReactJS Mapbox-gl无效类型:“容器”必须为String或HTMLElement

  7. 7

    Vue.js mapbox-gl错误:类型无效:“容器”必须为String或HTMLElement

  8. 8

    ReactJS Mapbox-gl无效类型:“容器”必须为String或HTMLElement

  9. 9

    打字稿:使用“ this”获取自定义界面的类型?

  10. 10

    在TypeScript中扩展HTMLElement

  11. 11

    如何区分原生HTMLElement和创建/自定义的HTMLElement?

  12. 12

    打字稿推断的类型不能使用

  13. 13

    类型'HTMLElement |的参数 “ null”不可分配给“ Element”类型的参数。类型'null'不能分配给类型'Element'.ts(2345)

  14. 14

    C ++语法问题-为什么我不能使用逗号分隔不同类型的变量定义

  15. 15

    为什么此项目中包含打字稿自定义类型定义?

  16. 16

    为什么我的Wordpress简码功能不能用于我的自定义帖子类型?

  17. 17

    HTMLElement突然未定义

  18. 18

    打字稿:将 HTMLElement 转换为节点

  19. 19

    为什么我必须强制转换为类型参数,而不能使用受约束的类型?

  20. 20

    使用cheerio的HTMLElement.querySelector()

  21. 21

    使用cheerio的HTMLElement.querySelector()

  22. 22

    为什么我不能使用Optional <>调用Set方法:对于Optional类型,方法setName是未定义的?

  23. 23

    属性“ noUiSlider”在类型“ HTMLElement”上不存在

  24. 24

    HTMLElement类型上不存在selectedIndex属性

  25. 25

    类型“ HTMLElement”上不存在属性“ connectedCallback”

  26. 26

    如何找出从HTMLElement派生的DOM元素节点类型?

  27. 27

    属性“ noUiSlider”在类型“ HTMLElement”上不存在

  28. 28

    “HTMLElement”类型上不存在属性“getContext”

  29. 29

    为什么我不能使用通用类型来实现非通用签名

热门标签

归档