从服务器接收对象并将其转换为客户端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 有效负载转换为域对象

如何接收 json 字符串并将其转换为字典?

powershell Powershell函数从文件中读取哈希表文本表示并将其转换为哈希表对象

JPA的模式:从实体生成数据传输对象DTO并将DTO合并到数据库