'EventTarget'类型中不存在属性'结果'?

时间:2017-11-17 03:43:22

标签: javascript html typescript

我的.ts文件中有一个Javascript,它一直显示我在'EventTarget'类型中不存在属性'result'???

imageUpload() {

window.onload = function(){   
    //Check File API support zzzz
        (<any>$('#files')).live("change", function(event) {
            var files = event.target.files; //FileList object
            var output = document.getElementById("result");
            for(var i = 0; i< files.length; i++)
            {
                var file = files[i];
                //Only pics
                // if(!file.type.match('image'))
                if(file.type.match('image.*')){
                    if(this.files[0].size < 2097152){    
                  // continue;
                    var picReader = new FileReader();
                    picReader.addEventListener("load",function(event){
                        var picFile = event.target;
                        var div = document.createElement("div");
                        div.innerHTML = "<img class='thumbnail' src='" + picFile.result + "'" +
                                "title='preview image'>";
                        output.insertBefore(div,null);            
                    });
                    //Read the image
                    $('#clear, #result').show();
                    picReader.readAsDataURL(file);
                    }else{
                        alert("Image Size is too big. Minimum size is 2MB.");
                        $(this).val("");
                    }
                }else{
                alert("You can only upload image file.");
                $(this).val("");
            }
            }                               

        });
}
}

在我的HTML中,我使用了此输入标记

    <input id="files" type="file" accept="image/*" multiple/>

我的输出标签是这样的      

为什么javascript里面有错误?谁知道问题是什么?谢谢!!!

1 个答案:

答案 0 :(得分:4)

看起来event.target的类型为FileReader,因此请尝试将event.target转换为特定类型,以告诉TypeScript它实际上会有.result值:

var picFile = <FileReader>event.target;

请参阅(here)以供参考。