首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Node.js
Express
PPA for Ubuntu
ppa:chris-lea/node.js
Coding
V2EX  ›  Node.js

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

  •  
  •   mashirozx · 41 天前 · 2795 次点击
    这是一个创建于 41 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    尝试过

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

    可是依然报错:

    image

    是我的 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

        1
    mashirozx   41 天前
    标题描述可能不太妥当,应当是 HTML 对象 --题主补充
        2
    easybin   41 天前   ♥ 1
    你是要用里面的东西吗 直接 xxx['xxx']
        3
    mashirozx   41 天前
    @easybin #2 原来是这样,太感谢了!
        4
    maomaomao001   41 天前
    anyscript
        5
    love   41 天前
    我这里怎么不报错???

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

    本贴不用回复啦~
        9
    momocraft   41 天前
    `as unknown as TheType`

    你自己知道是对的就行
        10
    mashirozx   41 天前
    @momocraft #9 哈哈
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2149 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 27ms · UTC 15:41 · PVG 23:41 · LAX 07:41 · JFK 10:41
    ♥ Do have faith in what you're doing.