![](/img/trans.png)
[英]TypeScript error : Type '…' is not assignable to type 'IntrinsicAttributes & Number'
[英]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.