gpt4 book ai didi

javascript - 类型 'string | ArrayBuffer' 不可分配给类型 'string'

转载 作者:可可西里 更新时间:2023-11-01 02:53:55 36 4
gpt4 key购买 nike

从 FileReader 读取字符串的 TypeScript 错误

读取文件内容的简单代码:

const reader: FileReader = new FileReader();
reader.readAsText(file);
reader.onload = (e) => {
const csv: string = reader.result; -> getting TS error on this line
}

我得到的 TypeScript 错误:

Type 'string | ArrayBuffer' is not assignable to type 'string'.
Type 'ArrayBuffer' is not assignable to type 'string'.

最佳答案

错误消息说明了一切。

您声明了一个 string 类型的 csv 变量。然后您分配 string | ArrayBuffer 类型(reader.result)到你刚刚赋值的string 类型。你不能。您只能将 string 分配给 string

因此,如果您 100% 确定 reader.result 包含 string,您可以断言:

const csv: string = reader.result as string;

但是,如果您不确定,请执行以下操作:

const csv: string | ArrayBuffer = reader.result;
// or simply:
const csv = reader.result; // `string | ArrayBuffer` type is inferred for you

然后您通常应该进行一些检查,例如:

if (typeof csv === 'string') {/*use csv*/}
else {/* use csv.toString() */}

关于javascript - 类型 'string | ArrayBuffer' 不可分配给类型 'string',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52955710/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com