Subcommands are a great way to nest seperate commands under one base command, each subcommand is their own seperate command and can be called as such.
In practise
We're continuing off the example from the Slash commands page
import { Interaction } from'detritus-client'import { BaseSlashCommand, BaseCommandOption } from'../base'exportdefaultclassPingCommandextendsBaseSlashCommand {constructor () {super({ name:'ping',// With subcommands, the description doesn't matter,// since it doesn't get shown to end users. description:'', options: [newPongCommand() ] }) }// The base command should not have a run(), it never gets called}exportclassPongCommandextendsBaseCommandOption {constructor () {super({ name:'pong' description: 'Pong!' }) }asyncrun (context:Interaction.InteractionContext):Promise<void> {awaitcontext.editOrRespond(context,'Pong!') }}