如何在没有FileReader的情况下将文件转换为Javascript中的Blob?
我正在尝试在不使用FileReader的情况下将文件转换为Blob。我不能使用FileReader,因为我必须使用的最新版本的Typescript不接受文件作为FileReader.readAsArrayBuffer的参数 使用FileReader,我可以按如下方式执行:如何在没有FileReader的情况下将文件转换为Javascript中的Blob?,javascript,typescript,ecmascript-6,Javascript,Typescript,Ecmascript 6,我正在尝试在不使用FileReader的情况下将文件转换为Blob。我不能使用FileReader,因为我必须使用的最新版本的Typescript不接受文件作为FileReader.readAsArrayBuffer的参数 使用FileReader,我可以按如下方式执行: var reader = new FileReader(); reader.onloadend = function(e) { new Blob([ this.result ], { type: "image/jpeg"
var reader = new FileReader();
reader.onloadend = function(e) {
new Blob([ this.result ], { type: "image/jpeg" } );
};
reader.readAsArrayBuffer(file);
如果没有FileReader,如何实现相同的结果?您可以使用接受文件的重载来扩充lib.d.ts中的声明 例如,使用以下内容创建名为globals.d.ts的文件
interface FileReader {
readAsArrayBuffer(file: File): void;
}
也就是说,如果声明被更改,我会对这种行为保持警惕,因为某些环境可能不支持它。如果我没记错的话,File是Blob的一个子类,所以您甚至不需要使用FileReader,它已经是Blob了。如果Typescript有问题,您可以随时转换为any-though。