【问题标题】:Values from web api are not being converted来自 web api 的值没有被转换
【发布时间】:2020-06-19 14:11:46
【问题描述】:

我有一个 web api 调用。 checkNumber 的属性是 web api 端的 double ,但是在我的打字稿模型中,我需要它作为字符串输入。即使我的模型清楚地将其作为字符串变量,它仍保留为数字。

有没有办法让转换自动发生在字符串上?

我的网络 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;
}

【问题讨论】:

    标签: javascript typescript asp.net-web-api


    【解决方案1】:

    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
              }
           })
         )         
      }
    

    【讨论】:

      猜你喜欢
      • 2018-04-24
      • 2021-02-15
      • 2017-11-19
      • 2018-11-12
      • 1970-01-01
      • 1970-01-01
      • 2013-02-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多