我在我的Angular2项目中使用了array.unshift()。我得到了
TypeError: Cannot read property 'unshift' of undefined.
Typescript是JavaScript的超集。为什么array.unshift()无法识别?
如何使用Typescript将新项目添加到数组的开头?
答案 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 ,因此很简单。这是一个例子: