数据类型的属性不存在



我是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),实际上它的数据类型是objectstring

我正在寻找将数据类型更改为any的替代方案。

我假设channelmessagediscord.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[]吗。在这里对字符串应用联接是没有意义的。

最新更新