Почему VSCode выдает ошибку типа в этой подписке? - PullRequest
0 голосов
/ 27 июня 2018

Я следую этому уроку https://aws.github.io/aws-amplify/media/api_guide#subscriptions с моим VSCode.

Мой VSCode постоянно сообщает мне, что в методе subscribe есть ошибка.

Когда я смотрю на определение метода graphql, он говорит мне graphql({query, variables}: GraphQLOptions): Promise<GraphQLResult> | Observable<object>;

Может возвращать обещание или наблюдаемое. Ну, я пытаюсь подписаться на это заметное. Что я делаю неправильно? Почему VSCode постоянно говорит мне, что там есть ошибка?

enter image description here

Ошибка: 'subscribe' property does not exist in type 'Promise<GraphQLResult> | Observable<object>'.

Нужно ли что-то настраивать в моем tsconfig.json?

EDIT: добавить экран определения метода graphql.

enter image description here

1 Ответ

0 голосов
/ 27 июня 2018

Ошибка машинописного текста верна: метод .subscribe() отсутствует в сигнатуре типа Promise<GraphQLResult> | Observable<object>. Это потому, что его нет в прототипе Promise.

Чтобы заставить наборы работать снова, вам нужно либо вернуть только наблюдаемое из вашей функции graphql(), либо привести его возвращаемое значение к Observable<object> (возможно, что приведет к nullref). Вы также можете обернуть вызывающий код в Observable.from(), который принимает Promiselike в качестве аргумента для нормализации подписей.

...