使用TypeScript的discord-interactions时遇到两种不同的InteractionResponseType枚举问题
使用TypeScript的discord-interactions时遇到两种不同的InteractionResponseType枚举问题
嘿,我刚接触TypeScript不久,最近在用Cloudflare Workers搭建一个Discord机器人,用的是discord-api-types/v10库(我把它导入成了DAPI),走HTTP交互端点的路子。
我在代码里定义了Command接口,每个命令对象都有个execute方法,给它加了这样的类型提示(稍微简化了下代码):
interface Command { execute: (interaction: DAPI.APIInteraction) => Promise<DAPI.APIInteractionResponse>; }
但现在碰到个头疼的问题:处理交互响应的时候,发现存在两种不同的InteractionResponseType枚举——一个是discord-api-types里的DAPI.InteractionResponseType,另一个是discord-interactions库自带的同名枚举。
比如我想返回频道消息的时候,用DAPI.InteractionResponseType.ChannelMessageWithSource是符合类型定义的,但当我用discord-interactions里的工具函数(比如验证签名的verifyKey)时,它又会用到自己的枚举类型,这就导致类型不兼容,TypeScript一直报错说这两个枚举不是同一类型。
我试过直接把枚举值转成数字来绕开,但这样就丢了TypeScript类型检查的优势;也试过手动做类型断言,但总觉得这不是个优雅的解决方案。有没有什么办法能让这两个枚举类型兼容起来,或者统一用其中一套类型来彻底避免这种冲突呢?
内容来源于stack exchange
相关产品推荐
相关产品推荐

