TypeScript报Generic type 'CsvFileReader' requires 1 type argument错误如何解决
报错解决方案:Generic type 'CsvFileReader' requires 1 type argument(s)
该报错的根因是泛型参数推导失败,可按以下步骤排查解决:
第一步:修复拼写错误
你代码中的MatchResualts存在拼写错误,正确写法为MatchResults,先确认该类型/枚举已正确定义并导入到MatchReader所在文件:// 示例MatchResults定义,根据你的实际逻辑调整即可 enum MatchResults { HomeWin = 'H', AwayWin = 'A', Draw = 'D' }替换
MatchReader中所有的MatchResualts为正确的MatchResults。第二步:检查变量类型注解
如果你实例化时手动给reader加了类型注解,必须给CsvFileReader补全泛型参数,也可以直接省略注解让TypeScript自动推导类型:// 错误写法:CsvFileReader未携带泛型参数 // const reader: CsvFileReader = new MatchReader(Matches) // 正确写法1:省略注解,自动推导类型 const reader = new MatchReader(Matches) // 正确写法2:手动补全泛型参数 const reader: CsvFileReader<matchData> = new MatchReader(Matches)第三步:核对导入导出逻辑
确认MatchReader文件中导入的CsvFileReader路径正确,没有误导入其他非泛型的同名类。第四步:确认入参类型匹配
CsvFileReader构造函数要求传入string类型的CSV内容,确认你传入的Matches是字符串类型,和你现有read方法的逻辑匹配。
修改完成后即可正常使用:
const reader = new MatchReader(Matches) reader.read() // 此时reader.data为matchData类型的数组 console.log(reader.data)
内容的提问来源于stack exchange,提问作者Ehsan
相关产品推荐
相关产品推荐

