这是一个以discord.js为例的打字试题,不需要了解库的帮助。
我正在从普通的js中转换我的应用程序,当我调用一个方法时,它会给我一个带有键和值的映射类型。既然我使用的是类型记录,而且库有类型定义,那么我就不能再检查响应的大小了。
const attachments = interaction.options.getMessage('message', true).attachments;因此,以前我只需调用size属性,但现在我仅限于以下类型:
附件: Collection = APIAttachment[]
仅仅使用作为关键字来选择一个条件词,这样我就有更多的属性可玩了,这是不是很糟糕呢?我如何获得附件的大小或安全地解析为一种类型?他们只有迭代器。
我理解打字稿的好处,并避免任何烦人的解决方案。我正在努力学习如何更好地使用打字本,并希望使用库提供给我的类型。
发布于 2021-11-23 19:02:29
我会推荐这个简单的修复方法
你可以这样做:
如果您希望附件是一个集合
import { Collection } from "discord.js"
if(attachments instanceof Collection){
// Do this
}或者如果您希望附件是一个数组
import { Collection } from "discord.js"
if(!(attachments instanceof Collection)){
// Do that
}然后TypeScript将自动检测到attachments是一个数组或集合。
https://stackoverflow.com/questions/70083612
复制相似问题