gpt4 book ai didi

javascript - TypeScript:VS Code 中的 Array.reduce 函数报告错误

转载 作者:行者123 更新时间:2023-11-28 03:52:14 25 4
gpt4 key购买 nike

TypeScript: Array.reduce 函数在 VS Code 中报错,但在 WebStorm 中正常。

这是 VS Code 中的内容:

VS Code

报告

Type String is not assigned to the Type String[]

这就是 WebStorm 中的内容:

WebStorm

虽然没有问题,但是回调注解没有呈现,如上面的mapfilter

之前的代码是:

 private getUrlParameter(sParam) {
return decodeURIComponent(window.location.search.substring(1)).split('&')
.map((v) => v.split('='))
.filter((v) => v[0] === sParam )
.reduce((prev, curv, index, array) => curv[1], undefined);
}

我不知道问题是出在我的代码中还是 TypeScript 的编译器中。

最佳答案

如果您使用未定义,则选定的重载将为

reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;

它期望结果与数组的项目具有相同的类型。

您应该对初始值 (undefined) 使用类型断言,让编译器知道结果类型将为 string 或指定 的类型参数减少

.reduce((prev, curv, index, array) => curv[1], <string>undefined);
.reduce<string>((prev, curv, index, array) => curv[1], undefined)

如果您这样做,所选的重载将是

reduce<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;

关于javascript - TypeScript:VS Code 中的 Array.reduce 函数报告错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47885125/

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