Typescript 到底应该怎么转换 DOM 对象类型?

2019-11-02 10:37:25 +08:00
 mashirozx

编译报错 TS2339: Property 'xxxx' does not exist on type 'HTMLElement'

尝试过

let ele: HTMLImageElement = document.getElementById("img") as HTMLImageElement

可是依然报错:

是我的 ts 配置不对吗?

{
  "compilerOptions": {
    "outDir": "./dist/",
    "sourceMap": true,
    "lib": ["es5", "es6", "dom"],
    "alwaysStrict": true,
    "allowSyntheticDefaultImports": true,
    "module": "es6",
    "target": "es5",
    "jsx": "react",
    "allowJs": true
  }
}

Package 完整代码:https://github.com/mashirozx/sakura2

9185 次点击
所在节点    Node.js
10 条回复
mashirozx
2019-11-02 10:39:50 +08:00
标题描述可能不太妥当,应当是 HTML 对象 --题主补充
easybin
2019-11-02 10:40:43 +08:00
你是要用里面的东西吗 直接 xxx['xxx']
mashirozx
2019-11-02 10:44:39 +08:00
@easybin #2 原来是这样,太感谢了!
maomaomao001
2019-11-02 10:49:24 +08:00
anyscript
love
2019-11-02 11:03:46 +08:00
我这里怎么不报错???

const ele = document.querySelector('#cover-img') as HTMLImageElement
const eleW: number = ele.naturalWidth
console.log(eleW)
love
2019-11-02 11:06:14 +08:00
另外二楼的直接['xxx']是个什么鬼,这不是一样的,写起来还麻烦
xxx749
2019-11-02 11:11:40 +08:00
any 大法好
mashirozx
2019-11-02 11:12:57 +08:00
@love #6 找到原因了,之前 ts 文件同时用了 ts-loader 和 babel-loader,删掉其中一个就正常啦~

本贴不用回复啦~
momocraft
2019-11-02 11:16:57 +08:00
`as unknown as TheType`

你自己知道是对的就行
mashirozx
2019-11-02 11:20:47 +08:00
@momocraft #9 哈哈

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/615498

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX