Por ejemplo, si aplico mi pregunta a este código de la guía Discord.JS :
const data = new SlashCommandBuilder() .setName('gif') .setDescription('Sends a random gif!') .addStringOption(option => option.setName('category') .setDescription('The gif category') .setRequired(true) .addChoice('Funny', 'gif_funny') .addChoice('Meme', 'gif_meme') .addChoice('Movie', 'gif_movie'));Esto funciona muy bien, pero ¿y si quisiera que las opciones fueran opcionales , sin usar un menú de selección? (es decir, el usuario puede elegir "Gracioso", "Meme", "Película" o elegir uno propio).
Para mi caso de uso, quiero sugerir razones comunes para silenciar:
const { SlashCommandBuilder } = require("@discordjs/builders") const data = new SlashCommandBuilder() .setName("mute") .setDescription("Mute/timeout someone!") .addUserOption(option => option.setName("user") .setDescription("The user to timeout")) .setRequired(true) .addStringOption(option => option.setName("duration") .setDescription("The duration of the timeout") .setRequired(true) .addChoice("60 sec.", "1") .addChoice("5 min.", "2") .addChoice("10 min.", "3") .addChoice("1 hr.", "4") .addChoice("1 day", "5") .addChoice("1 week", "6") ) .addStringOption(option => option.setName("reason") .setDescription("The reason for the timeout") .setRequired(true) // add optional choices like "Posting memes in #general", etc., but also let them type their own reasons )Por alguna razón, los documentos no tienen absolutamente ninguna información sobre estas nuevas clases. no puedo encontrarlos
Como dijo alguien en una plataforma diferente, la autocorrección te permite escribir tu propia entrada de todos modos. Además, encontré los documentos de Builders: https://discord.js.org/#/docs/builders/stable/general/welcome
Desafortunadamente, esto no es posible de la forma en que desea hacerlo. Directamente desde https://discordjs.guide/interactions/registering-slash-commands.html#option-types/ : 
Por supuesto, puede haber otras soluciones que no conozco.