Angular2+/Typescript 中的 Lodash——groupBy getting 在尝试传递参数时无法调用类型缺少调用签名的表达式?
Lodash in Angular2+/Typescript -- groupBy getting cannot invoke an expression whose type lacks a call signature when trying to pass parameter?
这里是 Stackblitz:
https://stackblitz.com/edit/angular-qbpnqc
import { Component, OnInit } from '@angular/core';
import _ from "lodash";
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent implements OnInit {
array: [
{
"BookingId": 0,
"OrderNumber": "331049910611",
"ArrivalTime": "07:00:00",
"DepartureTime": "14:00:00",
"Duration": "07:00:00",
},
{
"BookingId": 0,
"OrderNumber": "331049910611",
"ArrivalTime": "07:00:00",
"DepartureTime": "14:00:00",
"Duration": "07:00:00",
},
{
"BookingId": 0,
"OrderNumber": "331049910611",
"ArrivalTime": "07:00:00",
"DepartureTime": "14:00:00",
"Duration": "07:00:00",
},
{
"BookingId": 0,
"OrderNumber": "331049910611",
"ArrivalTime": "07:00:00",
"DepartureTime": "14:00:00",
"Duration": "07:00:00",
},
{
"BookingId": 0,
"OrderNumber": "331049910611",
"ArrivalTime": "07:00:00",
"DepartureTime": "14:00:00",
"Duration": "07:00:00",
},
{
"BookingId": 0,
"OrderNumber": "331049910611",
"ArrivalTime": "07:00:00",
"DepartureTime": "14:00:00",
"Duration": "07:00:00",
"DeliveryStatus": "Accepted"
},
{
"BookingId": 59088,
"OrderNumber": "691",
"ArrivalTime": "11:00:00",
"DepartureTime": "12:00:00",
"Duration": "01:00:00",
"DeliveryStatus": "Accepted"
}
];
countSmth: any;
ngOnInit() {
// not working
console.log( _(this.array).groupBy('DeliveryStatus').values().map(
(group) => ({ ...group[0], qty: group.length }).value()
));
}
}
问题是 array
被声明为一个非常复杂的类型(在冒号之后)但实际上没有被初始化,所以它是 undefined
。将 array:
替换为 array =
.
这里是 Stackblitz:
https://stackblitz.com/edit/angular-qbpnqc
import { Component, OnInit } from '@angular/core';
import _ from "lodash";
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent implements OnInit {
array: [
{
"BookingId": 0,
"OrderNumber": "331049910611",
"ArrivalTime": "07:00:00",
"DepartureTime": "14:00:00",
"Duration": "07:00:00",
},
{
"BookingId": 0,
"OrderNumber": "331049910611",
"ArrivalTime": "07:00:00",
"DepartureTime": "14:00:00",
"Duration": "07:00:00",
},
{
"BookingId": 0,
"OrderNumber": "331049910611",
"ArrivalTime": "07:00:00",
"DepartureTime": "14:00:00",
"Duration": "07:00:00",
},
{
"BookingId": 0,
"OrderNumber": "331049910611",
"ArrivalTime": "07:00:00",
"DepartureTime": "14:00:00",
"Duration": "07:00:00",
},
{
"BookingId": 0,
"OrderNumber": "331049910611",
"ArrivalTime": "07:00:00",
"DepartureTime": "14:00:00",
"Duration": "07:00:00",
},
{
"BookingId": 0,
"OrderNumber": "331049910611",
"ArrivalTime": "07:00:00",
"DepartureTime": "14:00:00",
"Duration": "07:00:00",
"DeliveryStatus": "Accepted"
},
{
"BookingId": 59088,
"OrderNumber": "691",
"ArrivalTime": "11:00:00",
"DepartureTime": "12:00:00",
"Duration": "01:00:00",
"DeliveryStatus": "Accepted"
}
];
countSmth: any;
ngOnInit() {
// not working
console.log( _(this.array).groupBy('DeliveryStatus').values().map(
(group) => ({ ...group[0], qty: group.length }).value()
));
}
}
问题是 array
被声明为一个非常复杂的类型(在冒号之后)但实际上没有被初始化,所以它是 undefined
。将 array:
替换为 array =
.