错误 TS2349:无法调用类型缺少调用签名的表达式

error TS2349: Cannot invoke an expression whose type lacks a call signature

我正在使用 Angular 2 和 TypeScript 2。

当我使用

let labels: string[] | number[] = [];
// let labels: Array<number> | Array<string> = [];

labels.push(1);

它给我错误:

error TS2349: Cannot invoke an expression whose type lacks a call signature.

改变

let labels: string[] | number[] = [];

其中之一

let labels: (string | number)[] = [];
let labels: Array<number|string> = [];

将解决问题。