我对TypeScript没什么问题。我有一个模块,我已经定义了两个类(我将在下面提供代码)。我无法访问其他类,在第一个类中,而在相反的类中。我做错了什么?
这是我的代码:
module Model {
export class Model {
public apples:Apple[];
getAppleCnt() {
return this.model.apples.length;
}
createApple(){
var index = this.model.apples.getAppleCnt()+1;
return this.model.apples.push(Apple.createApple("Apple "+index,index));
}
createApples(){
this.model = new Model();
this.model.apples.=[];
}
}
export class Apple {
createApple(name:string,index:number){
var apple = new Apple();
apple.name = name;
apple.index = index;
return apple;
}
}
}
答案 0 :(得分:2)
这是一种方法:
module Model {
export class Model {
public apples: Apple[];
getAppleCnt() {
return this.apples.length;
}
createApple() {
var index = this.getAppleCnt() + 1;
return this.apples.push(Apple.createApple("Apple " + index, index));
}
createApples() {
this.apples = [];
}
}
export class Apple {
name: string;
index: number;
static createApple(name: string, index: number) {
var apple = new Apple();
apple.name = name;
apple.index = index;
return apple;
}
}
}
答案 1 :(得分:1)
我们应该创建Apple的实例或调用静态方法:
module Model {
export class Model {
protected model: Model;
public apples:Apple[];
getAppleCnt() {
return this.model.apples.length;
}
createApple(){
var index = this.model.apples.length + 1;
// instance
var apple = new Apple().createApple("Apple "+index,index);
// or call some static method
apple = Apple.createAppleStatic("Apple "+index,index);
return apple;
}
createApples(){
this.model = new Model();
this.model.apples = [];
}
}
export class Apple {
public name: string;
public index: number;
createApple(name:string,index:number){
var apple = new Apple();
apple.name = name;
apple.index = index;
return apple;
}
// the same as above but static one
static createAppleStatic(name:string,index:number){
var apple = new Apple();
apple.name = name;
apple.index = index;
return apple;
}
}
}