Значения из веб-API не конвертируются - PullRequest
0 голосов
/ 06 марта 2020

У меня есть веб-вызов API. Свойство checkNumber является двойным на стороне веб-API, однако в моей модели машинописного текста мне нужно, чтобы оно представляло собой строку. Он остается как число, хотя моя модель явно имеет строковую переменную.

Есть ли способ, чтобы преобразование автоматически происходило со строкой?

мой вызов веб-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;
}

1 Ответ

1 голос
/ 06 марта 2020

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