排序javascript对象数组,打字稿错误

时间:2018-06-23 04:05:41

标签: javascript typescript angular-cli

我有两个问题,一个是围绕角度倾斜转换时我注意到的行为而发生的……第二个是排序数组问题,它触发了#1问题。

我要排序的数组看起来像这样-称它为THINGS数组:

[{
    label : string,
    primary: boolean
}]

基本上是带有“主”字段的标签,该字段本质上是布尔值,因此值是true,false或null。我想排序,因此布尔TRUE是第一个,布尔FALSE是后一个,而NULL是最后一个。标签在每个分组中按字母顺序排列。

我只是想做一个简单的JS数组排序-不需要TS-

this.user.things.sort( function(a, b){ return b.primary > a.primary} );

所以我的编辑器正在警告我TS错误...由于代码有效,我将其忽略。

[ts] 类型'(a:ThingModel,b:ThingModel)=>布尔值的参数不能分配给类型'(a:ThingModel,b:ThingModel)=>数字的参数。   不能将'boolean'类型分配给'number'类型。

我想我将从问题2开始。因为同样的错误会在转换时显示出来

即使这是普通的JS-我也不想看到波浪形的线条,以及在发送时出现红色错误。

问题2:如何使此TS兼容?

然后,当我进行翻译时-即使我得到了错误-几秒钟后-我仍然收到“编译成功”消息-该站点可以正常工作。

问题1:有人可以在转译器上向我解释-或向我指出文档-哪些错误被认为是致命的-无开始错误,哪些错误将像这样,在其中引发红色错误-但无论如何都可以完成编译,并且代码可以正常工作。这不仅仅是解决错误,更是一个教育问题。但我想了解它。

谢谢。

2 个答案:

答案 0 :(得分:2)

您需要返回UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Title" message:@"" preferredStyle:UIAlertControllerStyleActionSheet]; for(NSString *str array){ UIAlertAction *button = [UIAlertAction actionWithTitle:str style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { [self.button setTitle:str forState:UIControlStateNormal]; }]; [alert addAction:button]; } UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) { }]; [alert addAction:cancel]; [self presentViewController:alert animated:YES completion:nil]; 而不是number

boolean

现在它将不会引发任何警告或错误。

答案 1 :(得分:1)

您可以只返回第二个值和第一个值的差值。

使用比较运算符会像使用减运算符一样进行隐式类型转换。

var array = [false, true, true, false, false, true];

array.sort((a, b) => b - a);

console.log(array);