javascript - 错误 TS2345 : Argument of type '(a: Test, b: Test) => boolean | 1' is not assignable to parameter of type '(a: Test, b: Test) => number'

标签 javascript typescript

抱歉,这个话题太长了,我只是不明白您的回答。

我的代码:

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/

相关文章:

javascript - 当我将员工状态更改为终止或辞职时,添加另一个字段辞职日期

javascript - 我如何使用 Gulp 使用 gulp-mocha 显示测试覆盖率

ios - 角标(Badge)数量始终为1(云函数)

angular - 为什么 Angular 单元测试没有测试此服务中的订阅内容?

reactjs - 从 typescript 中的 API 响应正确转换日期

javascript - 如何确定数字在字符串中的位置

javascript - 如何在 react-native-reanimated 中聆听值(value)变化?

javascript - 如何根据在我的 .ts 文件中搜索数组中的值数组来禁用和选中复选框

javascript - 使每次调用返回的匿名函数成为相同的实例

javascript - ScrollTo 函数是 AMP?