我一直在试图找出我在打字稿中遇到的一个非常奇怪的问题。它将内联布尔表达式视为第一个值的类型,而不是完整的表达式。
因此,如果您尝试以下简单的操作:
var numericArray:Array<number> = [2,3,4,1,5,8,11]; var sorrtedArray:Array<number> = numericArray.sort((n1,n2)=> n1 > n2);
试试看
你会在你的排序方法上得到一个错误,说参数与调用目标的任何签名都不匹配,因为你的结果是数字而不是布尔值。我想我错过了一些东西,因为我很确定 n1>n2 是一个布尔语句。
错误是完全正确的。
正如它试图告诉你的那样,.sort()它采用一个返回数字而不是布尔值的函数。
.sort()
如果第一项较小,则需要返回负数;如果它更大,则为正,如果它们相等,则为零。