【发布时间】:2018-12-12 14:29:37
【问题描述】:
因为我是 Angular/Typescript 的新手,我仍然有一些基本问题,但找不到合适的答案。如何接收或转换正确的值类型?
我已经定义了一个简单的模型:
export class Message {
ID: number;
mode: string;
senderID: number;
receiverID: number;
marked: boolean;
subject: string;
}
现在我通过 message.service 从服务器获取数据,例如:
getMessages(): Observable<Message[]> {
return this.restService.get('/message/list/' + this.owner)
}
在我的组件中,我通过以下方式读取值:
this.messageService.getMessages().subscribe((messages:Message[]) => {
this.objectlist = messages
}
我需要和期望的是消息元素的真实数据类型,但一切都是 String。为什么没有布尔值和数字?
我也玩过 pipe() 和 map(),但我无法进行类型转换。
我做错了什么?我希望有人能帮我一把。提前谢谢。
【问题讨论】:
-
确保服务器返回布尔值
-
服务器返回一个 JSON 对象字符串,默认情况下所有编号的值都是字符串...布尔值返回为“0”或“1”
-
你需要从服务器返回数字作为数字
-
为什么?为什么我不能像之前在 JS 中那样在 map() 函数中转换从服务器返回的值?
-
@LarsHagen :最好从服务器正确获取。但如果你愿意,你绝对可以做一个地图和类型转换。当你 map() 时你得到了什么?
标签: angular typescript casting type-conversion observable