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;