React Typescript 自定义挂钩排序列表

我正在尝试创建一个自定义挂钩以响应以返回基于两个参数的排序数组:列表本身和带有我要排序的键的字符串。在询问如何解决之前尝试了几种策略,很多时间都在诅咒 TS,但仍然相信它有一个我没有看到的简单解决方案。


钩子:



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]我收到此错误:


元素隐式具有“任何”类型,因为类型“字符串”的表达式不能用于索引类型“{}”。在类型“{}”上找不到参数类型为“字符串”的索引签名.ts(7053)


即:我作为列表传递了一个简单的电影对象数组,并尝试按“标题”对其进行排序。


我怎样才能输入这个排序参数,以便我可以将它用于任何对象数组?


干杯!


猛跑小猪
浏览 96回答 1
1回答

慕桂英4014372

那是因为你正在使用object类型。尝试删除此类型注释。由于变量的类型list定义明确,list.sort也定义明确,因此无需尝试帮助 TypeScript 解决这个问题(请参阅)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript