我将我的项目从 Angular 6 升级到 Angular 7。我的项目中有一个文件上传组件。升级后会出现编译器错误。
onUpload() {
const fileReader = new FileReader();
fileReader.onload = () => this.uploadFile(fileReader.result);
fileReader.readAsText(this.fileToUpload);
}
uploadFile(fileContent: string) {
//upload
}
在上面的代码中,this.uploadFile(fileReader.result)
给出以下错误。
错误 TS2345:类型为“string |”的参数ArrayBuffer' 不是
可分配给“字符串”类型的参数
的类型fileReader.result
is string | ArrayBuffer
,它说这不能分配给string
。我怎样才能转换string | ArrayBuffer
键入一个string
?
Whilst result
有可能返回字符串,但它不能隐式地将其转换为字符串,因为存在数据丢失的风险。 IE。ArrayBuffer as string
可能会导致数据截断(必须进行测试)。所以你必须显式地转换它来告诉编译器“我知道我在做什么”。
实现这一目标的两种方法是:
(string)fileReader.result;
fileReader.result as string;
Folks, Check @Malvolio's answer, it's more complete.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)