TypeScript问题记录

1.iframe使用contentDocument属性时报错

error code:

let f = document.getElementById('xxx')

f.contentDocument.write(bdhtml);

代码运行没有报错,build的时候报错,报错信息如下:

error TS2551: Property 'contentDocument' does not exist on type 'HTMLElement'. Did you mean 'ownerDocument'?

后来查资料发现是如果是使用iframe对象,需要给f绑定类型HTMLIFrameElement

比如 let f = document.getElementById('xxx') as HTMLIFrameElement 即可

如果无法确定类型,可以用as any 也可以完美解决.

2 文件上传字节流转换后打包过程报类型不符合

   
    let _file: File = event.target.files[0];
    let reader = new FileReader();
    reader.readAsDataURL(_file);
    reader.onload = (e)=>{
      let obj : any = e.target.result;   
      $('#triggerImg').attr("src", obj);
    };


    question:Property 'result' does not exist on type 'EventTarget'.

因为readAsDataURL会将图片转换成base64码,再通过FileReader对象的onload方法返回回来
但是TyrScript编译器不知道你正在返回一个什么类型的东西,
e.target默认为EventTarget类型,但是result为string类型,因此会报错。
解决办法:  let obj : any = (e.target as any).result;   
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,286评论 19 139
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 3,995评论 1 10
  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,504评论 0 10
  • 由于redhet自带的yum需要收费,所以卸载原先的自带yum工具,linux版本为centos6.3 查看已安装...
    walljay阅读 2,666评论 0 0
  • 今天休息,决定做一次午餐,让同事品尝品尝我的手艺。同事年轻,吃的都是现代食品,老式的吃的少,再不吃一点就绝版...
    吕氏春秋8989阅读 387评论 0 3