我有一个网络 API 调用。 checkNumber 的属性在 Web api 端是一个 double ,但是在我的 typescript 模型中,我需要它作为字符串输入。尽管我的模型显然将其作为字符串变量,但它仍保留为数字。
有没有办法让字符串自动转换?
我的网络 API 调用
public GetMyClass(myModel: MyClass): Observable<MyClass> {
let headers = new HttpHeaders();
headers.append("content-type", "application/json");
headers.append("accept", "application/json");
let options = { headers: headers };
return this.httpClient.post<MyClass>( url, myModel, options)
}
我的模型
export MyClass{
checkNumber?: string;
}
最佳答案
Typescript 不进行自动转换。它有助于开发期间的类型检查。在运行时,它只是简单的 JavaScript。
您需要定义自己的转换。
public GetMyClass(myModel: MyClass): Observable<MyClass> {
let headers = new HttpHeaders();
headers.append("content-type", "application/json");
headers.append("accept", "application/json");
let options = { headers: headers };
return this.httpClient.post<MyClass>( url, myModel, options)
.pipe(
map(dataObject => {
let checkNumber = dataObject.checkNumber
return {
checkNumber: checkNumber ? dataObject.checkNumber.toString() : undefined,
...dataObject
}
})
)
}
关于javascript - 来自 Web api 的值未转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60570882/