任何人都可以帮助我。
我正在尝试从数组中排序字符串
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中它运行正常,而不是打字稿?
打字稿,它给出了以下错误 的错误:
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'.
有什么想法吗?提前谢谢
答案 0 :(得分:7)
.sort((a,b) => a < b)
不正确。 sort
回调应该返回数字,而不是布尔值 - 正是TypeScript告诉你的。
相反:.sort((a,b) => a - b)
(-
而不是<
)。或b - a
以另一种方式排序。