Angular Typescript toString返回一个对象

时间:2018-03-16 14:08:04

标签: node.js angular mongodb

我从http get调用中收到一个客户端,如下所示:

ShowViewModel

我的客户端类看起来像这样:

MvxNavigationService

}

我的问题是当我调用toString()方法时,我收到一个[object object]。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

这是关于TypeScript的常见误解。在TypeScript中,泛型类型在运行时不可见,这意味着您无法进行httpClient.get<Client>之类的魔术映射并获得Client实例。 (可以使用AST变换器+ Type-checker API,但这是另一个主题)

您需要手动映射您的对象,如下所示:

getClientById(clientId): Observable<Client>{
    let params = new HttpParams().set('clientId', clientId);

    return this.httpClient
        .get('http://localhost:3000/clients/getClientById', {
            responseType: 'json',
            params: params
         })
         .map(data =>
             // build the Client instance here, data is a plain JavaScript object
             new Client(...)
         )
}

您获得[object Object],因为它是string的默认object值。

> ({}).toString()
"[object Object]"
> String({})
"[object Object]"