TypeScript myFunction 不是函数

dze*_*siz 1 javascript function typescript angular

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

my.service.ts有这个类:

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

    createString(): void {
        this.MyList.forEach(s => {
            this.MyString += s + ', ';
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

my.component.ts是这样调用它的:

myData: MyClass[] = [];

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

VS Code 将该createString函数识别为 的方法MyClass,但我仍然收到错误:

错误类型错误:x.createString 不是函数

有什么解释吗?

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

Tit*_*mir 6

来自服务器的对象只是一个简单的对象,而不是该类的实例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());
    }
});
Run Code Online (Sandbox Code Playgroud)