我有一个打字稿类,如下所示:
export class Broker {
constructor() {
this.id = Guid.newGuid();
this.stations = new Array<Station>();
}
index: number;
id: string;
name: string;
stations: Array<Station>;
isIncomplete(): boolean { // error occurs because of this function which is undefined
if (this.name == "" || this.name == undefined)
return true;
return false;
}
}
和这个类的数组
brokers: Array<Broker>;
我从服务器获得经纪人,如下所示
ngOnInit(): void {
this.brokers = new Array<Broker>();
this.brokerservice.getlist().then(
data => this.brokers = data as Array<Broker>,
error => this.errorMessage = <any>error);
}
服务中的getlist 返回正确的类型(Broker的数组),从服务器收到的json如下所示:
var brokers = new[]
{
new
{
index = 0,
id = "097809098008",
name = "کارگزاری اول",
},
new
{
index = 0,
id = "98709-9",
name = "کارگزاری ",
},
};
isIncomplete()函数是一个计算函数,当我想使用代理时,我无法在服务器端定义(或者至少我不知道如何)在客户端我得到错误 isIncomplete不是函数如果我省略该函数一切正常。即使我声明了代理数组的确切类型并进行了转换,但错误仍然存在。什么是解决问题的最佳方式(而不是定义全局函数)?
答案 0 :(得分:1)
如果您要定位ES6,最简单的方法是使用Object.assign
:
data => this.brokers = data.map(d => Object.assign(new Broker(), d))
如果您的目标是&lt; ES6,然后您可以使用this polyfill from MDN。