我是TypeScript的新手,在数据类型方面有两个问题。
这是我的代码:
const say: object = {
name: "say",
aliases: [""],
description: "",
usage: "",
run: (client: object, msg: object, args: string) => {
if (!args[0]) return;
msg.channel.send(args.join(" "));
},
};
export default say;
出现的错误是:
类型"object"上不存在属性"channel"。
类型"string"上不存在属性"join"。
我做了一个console.log (typeof msg)
和console.log (typeof args)
,实际上它的数据类型是object
和string
。
我正在寻找将数据类型更改为any
的替代方案。
我假设channel
和message
是discord.js
类型。因此,您可以从这里检查discord.js类型:https://github.com/discordjs/discord.js/tree/master/typings
你可以使用这样的消息类型:
import {Message }from "discord.js"
第二个问题。联接不是字符串的属性。这是数组的属性,所以args可能是string[]
如果您确定消息的类型,那么您可以创建自己的类型。
interface Msg {
channel: type here;
}
at the run, use this interface. (client: object, msg: Msg, args: string)
如果你不确定它的结构,那么只需在那里说"msg",而不需要任何typedef。
你是说args: string[]
吗。在这里对字符串应用联接是没有意义的。