Typescript不编译e.currentTarget.files

时间:2013-01-30 12:31:05

标签: jquery compiler-errors typescript

我用Jquery读取输入中的文件

<INPUT TYPE=FILE id="file" NAME="upfile" multiple>

使用此代码

$('#inputFile').on('change', 'body', (e) => {
  var files: any = e.currentTarget.files;  });

但是打字稿不知道e.currentTarget在这种情况下有poperty文件。并给我一个编译错误。

如何解决此问题?

提前致谢

3 个答案:

答案 0 :(得分:3)

$('#input-container').on('change', null, (e) => {
    var input = <HTMLInputElement>e.target;
    var files = input.files; //give you intellisense on files
});

答案 1 :(得分:1)

jQuery.On有两个不同的重载(版本1.8)。您正在使用错误的重载方法。使用正确的

如果您没有要传递任何数据,请将代码更改为

$('#inputFile').on('change', 'body', null, (e) => {
var files: any = e.currentTarget.files;  });

答案 2 :(得分:0)

与@ michael-tranchida相似,但我觉得有点清洁:

export class Page {
    public fileToUpload:File = null;

    constructor(public fileInput: JQuery, public fileDetails: JQuery) {
        $(fileInput).on('change', (e) => {
            this.fileToUpload = <File>$(e.target).prop('files')[0];
            $(fileDetails).html(this.fileToUpload.name); // intellisense on fileToUpload
        });
    }
}