Причина, по которой вы не можете добавить третий параметр в http.get
, заключается в том, что он не принимает третий параметр.observe
«синтаксис» является частью параметра httpOptions
, поэтому все, что вам нужно сделать, это объединить то, что находится в вашем httpOptions
объекте, с {observe: "response"}
Например, если ваш httpOptions
выглядит так:
const httpOptions = {
headers: {
"Content-Type": "application/json"
}
}
Вы можете комбинировать это с объектом observe
, указанным выше, следующим образом:
const httpOptions = {
headers: {
"Content-Type": "application/json"
},
observe: "response"
}
Если вы принимаете httpOptions
в качестве аргумента (так что вы можете 'Чтобы создать новый с нуля, как в предыдущем примере), вы можете просто написать поле observe
непосредственно на нем:
httpOptions.observe = "response"
Любой из этих методов сохранит ваш текущий объект httpOptions
и добавитполе observe: "response"
к нему.
EDIT
Чтобы этот метод работал, вам нужно будет "лгать" компилятору о типе observe
чтобы позволить ему скомпилировать.Вы можете сделать это, добавив as any
к концу "response"
в вашем httpOptions
объекте:
const httpOptions = {
headers: {
"Content-Type": "application/json"
},
observe: "response" as any
}
Причина, по которой это необходимо, заключается в том, что TypeScript не может определить тип вашего raw httpOptions
объект правильно (он хочет, чтобы "response"
был литералом "body"
).Использование TypeScript для интерпретации "response"
как any
решает эту проблему.