TypeScript myFunction不是函数

时间:2019-05-21 08:12:30

标签: javascript angular typescript function

我在Angular工作,并且遇到以下情况:

my.service.ts 具有此类:

export class MyClass {
    MyList: string[] = [];
    MyString: string = '';

    createString(): void {
        this.MyList.forEach(s => {
            this.MyString += s + ', ';
        });
    }
}

my.component.ts 这样称呼它:

myData: MyClass[] = [];

this.myService.getMyData().subscribe(res => {
    myData = res;
    if (myData.length > 0) {
        this.myData.forEach(x => x.createString());
    }
});

VS代码将createString函数识别为MyClass的方法,但是我仍然收到错误消息:

  

错误TypeError:x.createString不是函数

有什么解释吗?

EDIT :数据来自后端,而后端模型没有此方法。也许是问题所在?

1 个答案:

答案 0 :(得分:3)

来自服务器的对象将只是一个简单的对象,而不是类MyClass的实例。您可以创建MyClass的实例,并将服务器对象中的值分配给该类的实例:

this.myService.getMyData().subscribe(res => {
    myData = res.map(o => Object.assign(new MyClass(), o));
    if (myData.length > 0) {
        this.myData.forEach(x => x.createString());
    }
});