Javascript-форум (https://javascript.ru/forum/)
-   Angular.js (https://javascript.ru/forum/angular/)
-   -   Angular2+: Как упростить код на TS (https://javascript.ru/forum/angular/69905-angular2-kak-uprostit-kod-na-ts.html)

Shitbox2 26.07.2017 12:41

Angular2+: Как упростить код на TS
 
Интересно, есть ли здесь люди, кто уже уверенно чувствует себя в TypeScript. Вопрос такой: нужно засетить заголовки в реквест

Есть js-объект с какими-то заголовками:
const headers = {
    'Authorization': 'someToken',
    'Content-Type': 'text/html',
    ...
}


Согласно документации, заголовки ставятся таким образом:
return this.http.get('/url', {
      headers: new HttpHeaders().set('Authorization', 'someToken'),
})


Собственно, нужно написать код, который поставит все заголовки. Какими способами это можно сделать и какой способ лучший? (Разумеется headers: headers не будет работать из-за ошибки приведения типа)

P.S. На всякий случай, для тех кто заглянет в документацию. Лучший способ, разумеется, такой:
return this.http.get('/url', {
      headers: new HttpHeaders(headers)
})


Допустим, что в конструктор нельзя ничего передать. Т.е., вопрос не про заголовки, а общий

destus 26.07.2017 13:08

this.http.get('/url', {
      headers: Object.keys(headers).reduce((currHeaders, header) => {
        return currHeaders.set(header, headers[header]);
      }, new HttpHeaders())
})

Shitbox2 26.07.2017 15:29

А просто избежать ошибки приведения типа (отключить) или привести вручную можно?

destus 26.07.2017 15:34

https://basarat.gitbooks.io/typescri...assertion.html


Часовой пояс GMT +3, время: 01:11.