Используя машинопись, Angular 6+ и rxjs, как наилучшим образом представить вызывающей стороне, что содержимое ответа HTTP пусто (Content-Length = 0)?
Без указания типов в вызове метода (get
, post
и т. Д.), Возвращается Observable<Object>
, что вводит в заблуждение относительно содержания ответа, поскольку можно поддаться искушению использовать данный объект:
let response: Observable<Object> = httpClient.post('...');
response.subscribe(o => ...);
В этом случае o
всегда равно нулю, но это не является явным и не проверяется компилятором.
Лучшим решением было бы вернуть Observable<null>
, но я считаю семантику неоднозначной, поскольку нуль может также ссылаться на нульданные (например, для клиента без номера телефона свойство phoneNumber будет иметь значение NULL).