数据类型的属性不存在
Posted
技术标签:
【中文标题】数据类型的属性不存在【英文标题】: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)
,实际上它的数据类型是object
和string
。
我正在寻找将数据类型更改为any
的替代方法。
【问题讨论】:
尝试寻找如何在 TypeScript 中声明自己的类型。更好地理解纯 javascript 也会有所帮助。 【参考方案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】:
我假设 channel
和 message
是 discord.js
类型。所以你可以从这里检查 discord.js 类型:https://github.com/discordjs/discord.js/tree/master/typings
你可以像这样使用消息类型:
import Message from "discord.js"
在第二个问题中。 join 不是字符串的属性。它是数组的属性,所以 args 可能是 string[]
【讨论】:
不知道string []
也是一种数据类型。谢谢!!以上是关于数据类型的属性不存在的主要内容,如果未能解决你的问题,请参考以下文章
类型“()=> DocumentData”上不存在属性“数据”