У меня есть ошибка, чтобы уточнить, что «Свойство» json «не существует для типа «Пользователь».»

#angular #typescript #frontend

Вопрос:

Мне нужно знать, что означает эта ошибка в моем коде ниже. Это метод Post для передачи данных в БД, и эта ошибка возникла как «Свойство»json» не существует для типа «Пользователь»». Проверьте код ниже.

Угловая версия: 12.2.12 Узел: 16.13.0 Менеджер пакетов: npm 8.1.2

 // model.ts  export class User{  UserID : number  UserName : string  FirstName : string  LastName : string  Email : string  Password : string  ConfrimPass : string  UserRole : string  Authorize_building :string   }    //component.ts  resetForm(form? : NgForm) {  if (form != null)  form.reset();  this.userService.selectUser = {  UserID: null,  UserName: '',  FirstName: '',  LastName: '',  Email: '',  Password: '',  ConfrimPass: '',  UserRole: '',  Authorize_building: '',  }  }    //service.ts  PostUser(usr : User): Observablelt;Usergt;{  var body = JSON.stringify(usr);  var headerOption = new Headers({ 'Content-Type' : 'application/json' });  var requestOption = new RequestOPtions({ method: RequestMethod.Post, headers: headerOption });  // return this.http.post('https://localhost:44339/api/Users', body, requestOption).map(x =gt; x.json());    var headersOption = ({ 'Content-Type' : 'application/json' });  var body = JSON.stringify(usr);  return this.http.postlt;Usergt;('https://localhost:44339/api/Users', body, { headers: headersOption } ).map(x =gt; x.json());  };  }  

Мне нужно решение для этого!

Комментарии:

1. json метод не существует в User классе.

2. http.post() вернет наблюдаемый ответ, для которого на карте потребуется объект типа response.

Ответ №1:

Я бы попробовал ввести ответ, утвердив его:

От…

 .map(x =gt; x.json());  

Я бы сделал

 .map((x: Type) =gt; x.json())  

Ответ №2:

Попробуйте использовать карту внутри оператора трубы, как показано ниже.

.pipe(map((response) =gt; response.json()))

Также импортируйте map и pipe из RxJS, как это.

import { map, pipe } from 'rxjs/operators'