Argument of type '(a: Hero, b: Hero) => number | undefined' is not assignable to parameter of type '(a: Hero, b: Hero) => number'. Type 'number | undefined' is not assignable to type 'number'. Type 'undefined' is not assignable to type 'number'. <ArkTSCheck>
这个错误表明您的排序函数可能返回了 undefined
,但 sort
方法期望的回调函数必须始终返回一个数字。
您需要确保在 sortHeroList
函数中的 switch
语句的所有分支都返回了数字。目前看起来除了 case 0
,其他分支可能没有返回值或者返回了 undefined
。
以下是一种可能的修正方式,为其他未处理的情况添加默认的返回值:
sortHeroList() {
this.heroList.sort((a: Hero, b: Hero) => {
switch (this.HotIndex) {
case 0:
return a.banRate - b.banRate;
default:
// 提供一个默认的排序逻辑,例如按照英雄 ID 排序
return a.heroId - b.heroId;
}
});
}