Javascript 坚持向Discord客户端对象Typescript添加变量

Javascript 坚持向Discord客户端对象Typescript添加变量,javascript,node.js,typescript,discord,discord.js,Javascript,Node.js,Typescript,Discord,Discord.js,我不熟悉打字脚本,并使用打字脚本编写Discord机器人。我想向客户机对象添加一个变量“commands”。例如,在Javascript中,您可以使用以下内容: Javascript const{Client}=require('discord.js'); const client=new client(); client.commands='commands'; console.log(client.commands); //“命令” 但是现在我想添加一些类似于Typescript的东西。但

我不熟悉打字脚本,并使用打字脚本编写Discord机器人。我想向客户机对象添加一个变量“commands”。例如,在Javascript中,您可以使用以下内容:

Javascript

const{Client}=require('discord.js');
const client=new client();
client.commands='commands';
console.log(client.commands);
//“命令”
但是现在我想添加一些类似于Typescript的东西。但是当我在Typescript中使用这个时,我得到了以下错误:

Property 'commands' does not exist on type 'Client'.ts(2339)
我怎样才能解决这个问题

我现在的代码是:

导出类HalloClient{
私人客户:客户;
构造函数(){
this.client=新客户端();
this.client.commands=新集合();
}
public start():void{
log(`-Client |启动进程…`);
新注册表事件('../events/',this.client).load();
新建MongoConnection(process.env.mongouri.createConnection();
console.log(this.client);
this.client.login(process.env.token);
}
}

我在使用typescript并遵循

默认情况下,
commands
不是
Discord.Client
对象上的现有属性类型,但您可以通过创建
.d.ts
文件轻松地用自己的类型扩展Discord.js键入

我的项目目录中有
discord.d.ts
文件,其中包含:

declare module "discord.js" {
    export interface Client {
        commands: Collection<unknown, any>
    }
}

你到底在TypeScript中键入什么?我在TS文件
javascript导出类HalloClient{private client:client;constructor(){this.client=new client();this.client.commands=new Collection();}public start():void{console.log(`-client | Starting process…`);新建RegisterEvents(“../events/”,this.client).load();新建MongoConnection(process.env.mongouri).createConnection();console.log(this.client);this.client.login(process.env.token);}
import { Message } from "discord.js";

declare module "discord.js" {
    export interface Client {
        commands: Collection<unknown, Command>
    }

    export interface Command {
        name: string,
        description: string,
        execute: (message: Message, args: string[]) => SomeType // Can be `Promise<SomeType>` if using async
    }
}
import { Command } from "discord.js";

// Now `command` is strictly typed to `Command` interface
const command: Command = {
    name: "someCommand",
    description: "Some Command",
    execute(message, args): SomeType /* Can be Promise<SomeType> if using async */ {
        // do something
    }
};

export = command;