【发布时间】:2021-03-25 20:48:39
【问题描述】:
在第 15 行出现 TS 错误,尤其是在 e.target.result 中。
参数类型字符串 | ArrayBuffer 不可分配给参数类型字符串 Type ArrayBuffer 不可分配给字符串类型
let fileTag = document.getElementById("filetag"),
preview = document.getElementById("preview");
fileTag.addEventListener("change", function() {
changeImage(this);
});
function changeImage(input) {
let reader;
if (input.files && input.files[0]) {
reader = new FileReader();
reader.onload = function(e) {
preview.setAttribute('src', e.target.result);
}
reader.readAsDataURL(input.files[0]);
}
}
添加了 HTML
<div class="img-container">
<input type="file" id="filetag">
<img src="" class="profImage" id="preview" alt="profilePic">
</div>
【问题讨论】:
-
Typescript 类型系统不足以表达这种类型,因此您必须强制转换
e.target.result as string。 -
在 JavaScript 中一切正常,正如您在此处看到的那样 - jsfiddle.net/s7e1uhx4
-
@georg 你能举个例子吗?
-
@cypho 我的编辑器给了我错误,当我在本地主机上运行它时,图像没有显示出来。
标签: typescript filereader