PubSub 错误:类型“PubSub<Record<string, never>>”.ts(2339)

问题描述 投票:0回答:1

当我使用简单的代码时,这发生在我的 Nestjs 应用程序中:

import { PubSub } from 'graphql-subscriptions';

export const pubSub = new PubSub();

@Subscription(() => ChatModel, {
    name: 'chatSent',
    filter: function (this: ChatResolver, payload, variables, context) {
      return this.chatService.filterChatSentEvent(payload, user);
    },
  })
  chatSent() {
    return pubSub.asyncIterator('chatSent');
  }

我使用的软件包:

 "graphql": "^16.10.0",
 "graphql-subscriptions": "^3.0.0",
graphql publish-subscribe graphql-subscriptions
1个回答
0
投票

似乎新版本的graphql-subscription使用了asyncIterableIterator,所以正确的用法是:

 return pubSub.asyncIterableIterator('chatSent');

通过检查类型定义可以注意到这一点:

PubSub extends PubSubEngine

PubSubEngine 类实现:

asyncIterableIterator<T>(triggers: string | readonly string[]): PubSubAsyncIterableIterator<T>;

npm 包“graphql-subscriptions”中,同时使用了 asyncIterator 和 asyncIterableIterator(描述可能未更新)。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.