0

我正在使用我的 VSCode关注本教程https://aws.github.io/aws-amplify/media/api_guide#subscriptions 。

我的 VSCode 一直告诉我该方法有错误subscribe

当我查看graphql方法的定义时,它告诉我graphql({query, variables}: GraphQLOptions): Promise<GraphQLResult> | Observable<object>;

它可以返回一个 Promise 或一个 Observable。好吧,我正在尝试订阅这个 observable。我究竟做错了什么?为什么 VSCode 一直告诉我那里有错误?

在此处输入图像描述

错误是:'subscribe' property does not exist in type 'Promise<GraphQLResult> | Observable<object>'.

我必须在我的 中配置一些东西tsconfig.json吗?

编辑:添加方法定义的屏幕graphql

在此处输入图像描述

4

1 回答 1

1

打字稿错误是正确的:.subscribe()类型签名中不存在该方法Promise<GraphQLResult> | Observable<object>。这是因为它不存在于 的原型中Promise

要使类型再次起作用,您要么只需要从graphql()函数中返回 observable,要么将其返回值强制转换为Observable<object>(可能导致 nullref)。您还可以包装调用代码,使用Observable.from()Promiselike作为参数来规范化签名。

于 2018-06-27T12:30:35.760 回答