我正在使用VSCode来学习本教程https://aws.github.io/aws-amplify/media/api_guide#subscriptions。
我的VSCode不断告诉我subscribe
方法有错误。
当我查看graphql
方法的定义时,它告诉我graphql({query, variables}: GraphQLOptions): Promise<GraphQLResult> | Observable<object>;
它可以返回一个promise或一个Observable。好吧,我正在尝试订阅这个可观察的内容。我究竟做错了什么?为什么VSCode一直告诉我那里有错误?
错误是:'subscribe' property does not exist in type 'Promise<GraphQLResult> | Observable<object>'.
我必须在tsconfig.json
中进行配置吗?
编辑:添加一个graphql
方法定义的屏幕。
答案 0 :(得分:1)
打字稿错误是正确的:.subscribe()
方法在类型签名Promise<GraphQLResult> | Observable<object>
中不存在。这是因为Promise
的原型中没有它。
要使键入再次起作用,您要么只需要从graphql()
函数返回可观察到的值,要么将其返回值强制转换为Observable<object>
(可能导致nullref)。您还可以使用Observable.from()
包装调用代码,该代码以Promiselike
作为参数来标准化签名。