Тип Промо отсутствует

#javascript #angular #typescript

#язык JavaScript #угловой #машинописный текст

Вопрос:

Я получаю эту ошибку, и я не уверен, почему. В моем классе диалогов у меня есть Promse и логика сбоя. Я получаю эту ошибку сборки, любая помощь была бы отличной.

Код серьезности Описание файла Ошибка состояния подавления строки проекта TS2740 (TS) типа «Обещание» отсутствуют следующие свойства типа «JQueryPromise»: состояние, всегда, выполнено, сбой и еще 2.

 var responsePromse = this.agentManager.getStyleGuideByAgentId(this.model.Id);   responsePromse.then((response) =gt; {  this.styleguideNote.AgentType = response.responseObject.Name;  }).fail(() =gt; {  this.relatedTemplates.loadingState = 0;  });  

Агентменеджер

 getStyleGuideByAgentId(Id: number): JQueryPromiselt;anygt; {  var request = this.agentsService.getStyleGuideByAgentId(Id);  console.log(request);  return request; }   

Агентсервис

 getStyleGuideByAgentId(Id: number) {  var x = this.http.post(this.apiUrls.GetStyleGuideNotes, JSON.stringify(Id), { headers: ServiceBase.headers }).toPromise();  return x; }  

Роликовый ролик

 [HttpPost]  public IHttpActionResult GetStyleGuideNoteById(long agentId)  {   var dbResult = StyleGuideNotesDataService.GetStyleGuideNoteById(agentId);   var styleguideNote = dbResult  .Select(x=gt; new   {  Section =x.Section,  AgentType = x.AgentType,  Status = x.Status.Name  })  .Distinct()  .ToList();   return Ok(styleguideNote);  }  

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

1. Э-э, но я полагаю, что это машинописный текст, это Угловой код?

Ответ №1:

Сообщение об ошибке TS, подобное этому формату Type 'A' is missing following properties from type 'B' , означает, что вы явно ввели » B «в значение, но тип значения на самом деле «A».

итак, вы ввели что-то явно как JQueryPromise , но на самом деле Promise это было так .

Я думаю, что этот код допускает ошибку.

 getStyleGuideByAgentId(Id: number): JQueryPromiselt;anygt; {  var request = this.agentsService.getStyleGuideByAgentId(Id);  console.log(request);  return request; }  

Я не уверен, но getStyleGuideByAgentId на самом деле возвращает стандартное обещание, а не JqueryPromise из-за toPromise()

таким образом, изменение кода, подобное этому, может решить вашу проблему.

 async getStyleGuideByAgentId(Id: number): Promiselt;anygt; {  var request = await this.agentsService.getStyleGuideByAgentId(Id);  console.log(request);  return request; }