#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; }