抱歉,这个话题太长了,我只是不明白您的回答。
我的代码:
this.rezerwacjeFilteredByseaarchInput.sort(function (a, b) {
if (a[5]===null) {
// console.log(a[5]);
return 1;
}
if (firmaSortOrder) {
return a[5] > b[5];
}
else {
return b[5] > a[5];
}
});
js 抛出: 错误 TS2345: 类型参数 '(a: Rezerwacja, b: Rezerwacja) => boolean | 1' 不可分配给类型为“(a: Rezerwacja, b: Rezerwacja) => number”的参数。 输入“ bool 值|” 1' 不可分配给类型“number”。 类型“true”不可分配给类型“number”。
最佳答案
根据MDN description of sort function ,排序比较函数必须返回一个数字。第一个条件返回数字,但其他两个条件返回 bool 值。下面的代码应该可以工作。
this.rezerwacjeFilteredByseaarchInput.sort(function (a, b) {
if (a[5] === null) {
return 1;
}
if (firmaSortOrder) {
return a[5] - b[5];
}
return b[5] - a[5];
});
关于javascript - 错误 TS2345 : Argument of type '(a: Test, b: Test) => boolean | 1' is not assignable to parameter of type '(a: Test, b: Test) => number' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48318499/