【发布时间】:2019-04-08 08:41:51
【问题描述】:
我有一个通用的函数,它接收字段(类属性)并从中创建一个 POST 请求。
代码是这样的:
public state: number;
updateField(field: string | number, name: string, team: boolean = true) {
this.http.post('/update_key', {
[path]: { [name]: field }
})
}
这里的
path是一个具有类似/ipl_data/match_info/current_match的firebase 路径的变量
我称之为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
}
有没有办法解决这种情况?
【问题讨论】:
-
[path]: { [name]: +field }+variable会将其强制转换为数字 -
替换 updateField(field: string | number, name: string, team: boolean = true) ===> updateField(field: string | number, name: number, team: boolean = true) 或updateField(field: string | number, name: any, team: boolean = true)
-
@JacopoSciampi 我已经尝试过了,它可以工作。但正如您必须从函数签名中猜到的那样,该字段的联合类型为
string | number。在这种情况下,硬转换为数字会起作用,但是如果我需要它作为字符串呢?当我在变量上定义类型时,这就是我希望 typescript 继续检查的内容? -
在这些情况下,您确定将其作为字符串还是数字传递?
标签: angular typescript http http-post