TypeScript带引用和push()方法的对象数组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TypeScript带引用和push()方法的对象数组相关的知识,希望对你有一定的参考价值。
最近我发现我的代码中有一个障碍。我正在使用我的自定义对象和它们的数组。我找到了一个push()方法正在工作的情况,另一个情况不是。
第一种情况(工作正常):
class MyObject{
private reference: d3.Selection<SVGElement>;
public constructor(ref: d3.Selection<SVGElement>){
this.reference = ref;
}
}
interface ViewModel{
objects: MyObject[]
}
class MyApp{
private root: d3.Selection<SVGElement>
private viewModel: ViewModel;
constructor(options: Type){
this.root = options.root
this.viewModel.objects.push(new MyObject(this.root))
}
}
第二种情况(不工作):
class MyObject{
private reference: d3.Selection<SVGElement>;
public constructor(ref: d3.Selection<SVGElement>){
this.reference = ref;
}
}
class MyApp{
private root: d3.Selection<SVGElement>
private objects: MyObject[];
constructor(options: Type){
this.root = options.root
this.objects.push(new MyObject(this.root)) //seems to freeze the whole program
}
}
我究竟做错了什么?任何帮助将不胜感激。
迈克尔
答案
你还没有初始化你的objects
阵列:
private objects: MyObject[] = [];
那可能会奏效:)
虽然,你还没有在你的'工作'例子中初始化你的viewModel
。所以我想你发布了代码的剥离版本?
以上是关于TypeScript带引用和push()方法的对象数组的主要内容,如果未能解决你的问题,请参考以下文章
TypeScript系列教程14Array数组对象的常见的方法
TypeScript系列教程13Array数组对象的常见的方法