【发布时间】:2020-10-24 04:09:00
【问题描述】:
我有一个用户的打字稿对象,其中包括一个id: number。这个 id 在内部从 axios 解析为字符串,这是错误的,我的服务器不接受,所以我想解决这个问题。
我的 axios 调用如下所示:
axios.post(${url}, user, { withCredentials: true }); 和 User 对象如下所示:
export default class User {
Id: number;
Username: string;
Password: string;
constructor(Id: number, Username: string, Password: string) {
this.Id = Id;
this.Username = Username;
this.Password = Password;
}
}
解析后的对象如下所示: "{"Id":"1337","Username":"test","Password":"admin"}"
预期的对象应该是这样的:"{"Id":1337,"Username":"test","Password":"admin"}"
我的想法是手动构建 json 并对其进行字符串化,但由于 axios 在内部再次使用字符串化,因此无法按预期工作。
【问题讨论】:
-
axios几乎肯定不会对此负责。您在哪里/如何填充对象上的Id属性? -
谢谢,我是本地开发人员,没想到,打字稿允许我将字符串放入数字属性中...我将 select html 元素的值直接分配给我的 id,实际上是一个字符串。
-
@T.J.Crowder 同意你的看法。这里有问题。
-
TypeScript 在运行时不存在,仅在 transpilation 时存在 - 如果通过网络传输的是
"{\"Id\": \"1337\"}",那么Id属性的值将是字符串。 -
Incorrect result in JavaScript calculation 的重复(
value始终是一个字符串)。
标签: json typescript axios