You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript编写Discord克隆消息平台WebSocket API报错求助

问题原因与修复方案

错误根源

报错Namespace 'API.WSResponse' has no exported member 'UserDelete'的核心原因:
你在FromWSAPI接口的USER_DELETE字段中声明要使用WSResponse.UserDelete类型,但**API.WSResponse命名空间里完全没定义这个接口**——你只在客户端发给服务器的WSPayload里写了UserDelete,但服务器返回给客户端的响应结构里漏掉了对应定义。

修复方法

根据你的业务需求二选一:

  1. 如果用户删除操作的服务器响应不需要携带任何数据,直接在WSResponse命名空间中添加空接口:
export namespace WSResponse {
  // ... 其他已有的接口 ...
  export interface UserDelete {}
  export interface UserUpdate {
    payload: Partial<Entity.User>;
  }
}
  1. 如果响应需要返回被删除用户的标识(比如用户ID),可以定义带字段的接口:
export namespace WSResponse {
  // ... 其他已有的接口 ...
  export interface UserDelete {
    userId: string;
  }
  export interface UserUpdate {
    payload: Partial<Entity.User>;
  }
}

修复后的完整WSResponse示例

// full data, not payload
// - data that will be likely stored and used by redux on client side
export namespace WSResponse {
  export interface ChannelCreate {
    channel: Entity.Channel;
    creatorId: string;
  }
  export interface ChannelDelete {
    channelId: string;
    guildId: string;
  }
  export interface GuildCreate {
    guild: Entity.Guild;
  }
  export interface GuildDelete {
    guildId: string;
  }
  export interface GuildUpdate {
    guildId: string;
    payload: Partial<Entity.Guild>;
  }
  export interface GuildMemberAdd {
    guildId: string;
    member: Entity.User;
  }
  export interface InviteCreate {
    invite: Entity.Invite;
  }
  export interface GuildMemberRemove {
    userId: string;
  }
  export interface MessageCreate {
    message: Entity.Message;
  }
  export interface MessageDelete {
    messageId: string;
  }
  export interface MessageUpdate {
    messageId: string;
    payload: Partial<Entity.Message>;
  }
  export interface Ready {
    user: Entity.User;
  }
  export interface TypingStart {
    channelId: string;
    userId: string;
  }
  // 新增的UserDelete接口
  export interface UserDelete {
    userId: string; // 可根据需求调整或留空
  }
  export interface UserUpdate {
    payload: Partial<Entity.User>;
  }
}

内容的提问来源于stack exchange,提问作者jhdthelad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 10:52:33