【问题标题】:Properties do not exist for data type数据类型的属性不存在
【发布时间】:2021-08-19 06:57:24
【问题描述】:

我是 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;

出现的错误是:

“对象”类型上不存在属性“通道”。

类型“字符串”上不存在属性“加入”。

我做了一个console.log (typeof msg)console.log (typeof args),实际上它的数据类型是objectstring

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

【问题讨论】:

  • 尝试寻找如何在 TypeScript 中声明自己的类型。更好地理解纯 JavaScript 也会有所帮助。

标签: node.js typescript discord discord.js


【解决方案1】:

如果您确定 msg 的类型,那么您可以创建自己的类型。

interface Msg {
    channel: type here;
}
at the run, use this interface. (client: object, msg: Msg, args: string)

如果你不确定它的结构,那么就直接说“msg”,不带任何 typedef。

你的意思是args: string[]。在这里对字符串应用连接是没有意义的。

【讨论】:

  • 不知道string []也是一种数据类型。谢谢!!
【解决方案2】:

我假设 channelmessagediscord.js 类型。所以你可以从这里检查 discord.js 类型:https://github.com/discordjs/discord.js/tree/master/typings

你可以像这样使用消息类型:

import {Message }from "discord.js"

在第二个问题中。 join 不是字符串的属性。它是数组的属性,所以 args 可能是 string[]

【讨论】:

  • 不知道string []也是一种数据类型。谢谢!!
猜你喜欢
  • 2018-10-15
  • 2018-01-23
  • 2023-03-10
  • 2018-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-02
  • 2021-01-09
相关资源
最近更新 更多