簡體   English   中英

來自 web api 的值沒有被轉換

[英]Values from web api are not being converted

我有一個 web api 調用。 checkNumber 的屬性在 web api 端是一個雙精度值,但是在我的打字稿模型中,我需要它作為字符串輸入。 即使我的模型清楚地將它作為字符串變量,它仍然是一個數字。

有沒有辦法讓轉換自動發生在字符串上?

我的 web 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。

您需要定義自己的轉換。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM