javascript - 来自 Web api 的值未转换

标签 javascript typescript asp.net-web-api

我有一个网络 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/

相关文章:

javascript - AJAX PHP 函数 onchange 选择框

javascript - 按照 firebase 文档,.update 仍在覆盖

Typescript 元组扩展类型

asp.net-web-api - Web API 中的操作和 QueryString 参数

javascript - mootools 中的 "read more"链接

javascript - 如何计算数组中对象值的动态平均值?

javascript - Typescript 中的工厂函数使用和不使用 new 关键字声明文件

json - 使用 TypeScript 解析复杂的 json 对象

asp.net-web-api - 如何确保ASP.net Web API Controller 的参数不为空?

c# - ASP.NET Core API 仅返回列表的第一个结果