我从http get调用中收到一个客户端,如下所示:
ShowViewModel
我的客户端类看起来像这样:
MvxNavigationService
}
我的问题是当我调用toString()方法时,我收到一个[object object]。
我做错了什么?
答案 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]"