从服务器接收对象并将其转换为客户端Typescript(javascript)中的所需对象[重复]
Posted
技术标签:
【中文标题】从服务器接收对象并将其转换为客户端Typescript(javascript)中的所需对象[重复]【英文标题】:receive object from server and cast it to desired object in client Typescript (javascript) [duplicate] 【发布时间】:2017-10-20 23:27:39 【问题描述】:我有一个打字稿类,如下所示:
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 在服务中返回正确的类型(代理数组),从服务器接收到的 json 如下:
var brokers = new[]
new
index = 0,
id = "097809098008",
name = "کارگزاری اول",
,
new
index = 0,
id = "98709-9",
name = "کارگزاری ",
,
;
isIncomplete() 函数 是一个计算函数,当我想使用 brokers 时,我无法在服务器端定义(或者至少我不知道如何)在客户端我收到错误 isIncomplete is not a function 如果我省略该函数一切正常。即使我声明了 brokers 数组的确切类型并对其进行了转换,但仍会发生错误。解决问题的最佳方法是什么(而不是定义全局函数)?
【问题讨论】:
【参考方案1】:如果你的目标是 ES6,最简单的方法是使用Object.assign
:
data => this.brokers = data.map(d => Object.assign(new Broker(), d))
如果你的目标是this polyfill from MDN。
【讨论】:
以上是关于从服务器接收对象并将其转换为客户端Typescript(javascript)中的所需对象[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何将 JSON 中的 SQL 主键转换为 javascript 对象键,并将其他数据作为其值
如何在 Spring Boot 和 RabbitMQ 中配置和接收并将 jSON 有效负载转换为域对象