我有一种通用的函数,该函数接受字段(类属性)并从中创建POST请求。
代码是这样的:
public state: number;
updateField(field: string | number, name: string, team: boolean = true) {
this.http.post('/update_key', {
[path]: { [name]: field }
})
}
此处
path
是具有Firebase路径的变量,例如/ipl_data/match_info/current_match
我这样称呼this.updateField(this.state, 'state', false);
发送此请求后,将创建请求正文,如下所示:
{
"/ipl_data/match_info/current_match": {
"state":"3"
} ^------ this should be a number since type was defined as number
}
有没有办法解决这种情况?
答案 0 :(得分:0)
我会尝试:
updateField(field: string | number, name: string, team: boolean = true) {
this.http.post('/update_key', {
[path]: { [name]: !isNaN(field) ? +field : field }
})
}
答案 1 :(得分:0)
机会首先是您的this.state === "3"
。检查this.state
分配值的位置。
这更多是“ javascript”问题,而不是“打字稿”问题。您需要了解打字稿对代码的运行时行为具有零影响,它仅在IDE和编译代码时有效。