V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mashirozx
V2EX  ›  Node.js

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

  •  
  •   mashirozx · 2019-11-02 10:37:25 +08:00 · 9156 次点击
    这是一个创建于 1608 天前的主题,其中的信息可能已经有所发展或是发生改变。

    编译报错 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

    10 条回复
    mashirozx
        1
    mashirozx  
    OP
       2019-11-02 10:39:50 +08:00
    标题描述可能不太妥当,应当是 HTML 对象 --题主补充
    easybin
        2
    easybin  
       2019-11-02 10:40:43 +08:00   ❤️ 1
    你是要用里面的东西吗 直接 xxx['xxx']
    mashirozx
        3
    mashirozx  
    OP
       2019-11-02 10:44:39 +08:00
    @easybin #2 原来是这样,太感谢了!
    maomaomao001
        4
    maomaomao001  
       2019-11-02 10:49:24 +08:00
    anyscript
    love
        5
    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
        6
    love  
       2019-11-02 11:06:14 +08:00
    另外二楼的直接['xxx']是个什么鬼,这不是一样的,写起来还麻烦
    xxx749
        7
    xxx749  
       2019-11-02 11:11:40 +08:00 via Android
    any 大法好
    mashirozx
        8
    mashirozx  
    OP
       2019-11-02 11:12:57 +08:00
    @love #6 找到原因了,之前 ts 文件同时用了 ts-loader 和 babel-loader,删掉其中一个就正常啦~

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

    你自己知道是对的就行
    mashirozx
        10
    mashirozx  
    OP
       2019-11-02 11:20:47 +08:00
    @momocraft #9 哈哈
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3330 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:18 · PVG 21:18 · LAX 06:18 · JFK 09:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.