Javascript 反应类型脚本自定义挂钩排序列表
我试图在react中创建一个自定义钩子,根据两个参数返回一个排序数组:列表本身和一个带有我想要排序的键的字符串。 在问如何解决这个问题之前,我尝试了几种策略,花了很多时间咒骂TS,但仍然相信它有一个我没有看到的简单解决方案 钩子:Javascript 反应类型脚本自定义挂钩排序列表,javascript,reactjs,typescript,Javascript,Reactjs,Typescript,我试图在react中创建一个自定义钩子,根据两个参数返回一个排序数组:列表本身和一个带有我想要排序的键的字符串。 在问如何解决这个问题之前,我尝试了几种策略,花了很多时间咒骂TS,但仍然相信它有一个我没有看到的简单解决方案 钩子: type Item = { [key: string]: number | string, } function useSortList(list: Item[], key: string) { return list.sort((a: object,
type Item = {
[key: string]: number | string,
}
function useSortList(list: Item[], key: string) {
return list.sort((a: object, b: object) => a[key] > b[key] ? 1 : -1) || list;
}
export default useSortList;
在a[key]>b[key]
上,我遇到了以下错误:
元素隐式具有“any”类型,因为“string”类型的表达式不能用于索引类型“{}”。
在类型“{}”上找不到具有“string”类型参数的索引签名。ts(7053)
例如:我以列表的形式传递一个简单的对象数组,并尝试按“标题”对其进行排序
如何键入此排序参数以便可以将其用于任何对象数组
干杯 这是因为您使用的是
对象
类型。请尝试删除此类型批注
由于
list
变量的类型定义得很好,list.sort
也定义得很好,因此无需尝试帮助TypeScript处理这个()。它就在我面前!我尝试了很多种情况,并且犯了各种各样的错误,这让我变得盲目和沮丧。终于奏效了。谢谢!干杯