繁体   English   中英

typescript 错误 - “布尔值”不可分配给类型“数字”

[英]typescript error - 'boolean' is not assignable to type 'number'

有谁能够帮我。

我正在尝试对数组中的字符串进行排序

var someArray= ["3a445a_V1", "3", "2a33s454_V1", "1", "3_V2", "2s4a34s3_V2", "234343"];

const [record] = someArray.map(r => parseFloat(r.replace('_V','.'))).sort((a,b) => a < b);

console.log(record)
//it returns 3a445a.1

小提琴

在浏览器 console.log 中它工作正常,而不是在 typescript 中?

typescript 它给出以下错误错误:

error TS2345: Argument of type '(a: number, b: number) => boolean' is not 
assignable to parameter of type '(a: number, b: number) => number'.
      Type 'boolean' is not assignable to type 'number'.

任何的想法? 提前致谢

.sort((a,b) => a < b)不正确。 TypeScript 消息是正确的: sort回调应该返回一个数字,而不是一个布尔值。

相反: .sort((a,b) => a - b)-而不是< )。 b - a以另一种方式排序。 这是因为如果a出现在b之前, sort回调应该返回一个负数,如果它们的顺序无关紧要,则返回0 ,如果b出现在a之前,则返回一个正数。 由于您似乎想要升序,因此a - b以便如果a小于b ,则返回负数等。 b - a进行降序排序。

你也可以使用.sort((a,b) => Number(a>b)) 这对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM