2017-02-02 4 views
2

У меня есть функция, возвращающая Rx.Observable созданный из обетования, следующим образом:Как объявить обратный машинопись тип Rx.Observable.fromPromise()

var data$ = fetchData(); 
fetchData() { 
    return Rx.Observable.fromPromise(fetch("someUrl")); 
} 

В Visual Studio кодекса, если навести курсор на переменную data$ показывает тип как Observable<Response>. Однако, если я явно объявляю возвращаемый тип функции как таковой, например. fetchData(): Rx.Observable<Response> {...} Я получаю сообщение об ошибке «Не могу найти имя« Ответ ».»

Он работает при объявлении возвращаемого типа как Observable<any>, но это слишком общее. Как объявить возвращаемый тип функции в соответствии с типом data$Observable<Response>?

ответ

2

Поскольку выборки-апи еще экспериментально, в зависимости от вашего Машинопись-версии вы не можете иметь все типизации из выборки-апи доступной - в этом случае вы может попытаться установить @types/whatwg-fetch -типы от npm.

npm install @types/whatwg-fetch

Вы также можете следить за эту тему на GitHub для будущих обновлений: https://github.com/Microsoft/TypeScript/issues/4948

+0

Мои извинения, я должен отметить, что это проект узла, поэтому я использую 'узел-fetch' для у меня есть установленные типы. Для использования 'fetch' у меня есть' import fetch from "node-fetch"; 'Кажется, я могу сделать' import * как Response from "../ node_modules/node-fetch/lib/response"; 'но это не кажется правильным (указав полный путь к модулю), и даже при этом я все равно получаю сообщение «Can not find name» Response ». ошибка. – 4EverLive

+0

Попробуйте «npm install --save @ types/node-fetch» ​​и используйте 'import {Response} из« node-fetch »;' – olsn

+0

Большое спасибо, это работает – 4EverLive

0

Вы должны установить типы:

npm install --save @types/whatwg-fetch 
Смежные вопросы