打字稿错误 - '布尔'不能指定类型'数字'

时间:2018-02-11 14:17:07

标签: javascript sorting typescript compiler-errors

任何人都可以帮助我。

我正在尝试从数组中排序字符串

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

JFIDDLE

在浏览器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'.

有什么想法吗?提前谢谢

1 个答案:

答案 0 :(得分:7)

.sort((a,b) => a < b)不正确。 sort回调应该返回数字,而不是布尔值 - 正是TypeScript告诉你的。

相反:.sort((a,b) => a - b)-而不是<)。或b - a以另一种方式排序。