typescript如何将新项添加到数组的开头

时间:2016-05-27 00:41:27

标签: typescript angular

我在我的Angular2项目中使用了array.unshift()。我得到了

TypeError: Cannot read property 'unshift' of undefined.

Typescript是JavaScript的超集。为什么array.unshift()无法识别?

如何使用Typescript将新项目添加到数组的开头?

2 个答案:

答案 0 :(得分:6)

该错误表明,您尝试调用unshift()的任何标识符实际上都具有值' undefined'而不是数组。

如果你这样做就好了:

var array = undefined;
array.unshift();

当你真正想要这个时:

var array = [];
array.unshift();

仔细检查您是否正确初始化阵列。

答案 1 :(得分:3)

错误消息:

  

TypeError:无法读取undefined的属性'unshift'。

表示在执行undefined方法调用时,上下文中的“数组”实例实际上是.unshift。在undefined变量上尝试该方法时会引发此错误。这是根本问题。

正确声明并实例化数组后,应使用slice

而不是:

let myArray;

声明,或实例化:

let myArray: number[] = [];

然后你可以添加值,你可以期望在运行时数组成员可用。

而不是unshift,您正在寻找本机数组slice方法。由于 JavaScript 有效 TypeScript ,因此很简单。这是一个例子: