繁体   English   中英

TypeScript myFunction不是函数

[英]TypeScript myFunction is not a 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 Code将createString函数识别为MyClass ,但仍然出现错误:

错误TypeError:x.createString不是函数

有什么解释吗?

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

来自服务器的对象将只是一个简单的对象,而不是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());
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM