mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-17 12:03:31 +01:00
typings(ApplicationCommandOptionData): Align command data options types more with discord API (#6247)
* types(ApplicationCommandData): align command data more with discord API * types(ApplicationCommandData): clean up type definitions a bit * types(ApplicationCommandData): fix issue where could be used with and * types(ApplicationCommandOptionData): make subcommand option stronger * test(ApplicationCommandOptionData): add typing tests
This commit is contained in:
59
typings/index.d.ts
vendored
59
typings/index.d.ts
vendored
@@ -2898,6 +2898,33 @@ export interface BaseApplicationCommandData {
|
||||
defaultPermission?: boolean;
|
||||
}
|
||||
|
||||
export type CommandOptionDataTypeResolvable = ApplicationCommandOptionType | ApplicationCommandOptionTypes;
|
||||
|
||||
export type CommandOptionChoiceResolvableType =
|
||||
| ApplicationCommandOptionTypes.NUMBER
|
||||
| 'NUMBER'
|
||||
| ApplicationCommandOptionTypes.STRING
|
||||
| 'STRING'
|
||||
| ApplicationCommandOptionTypes.INTEGER
|
||||
| 'INTEGER';
|
||||
|
||||
export type CommandOptionSubOptionResolvableType =
|
||||
| ApplicationCommandOptionTypes.SUB_COMMAND
|
||||
| 'SUB_COMMAND'
|
||||
| ApplicationCommandOptionTypes.SUB_COMMAND_GROUP
|
||||
| 'SUB_COMMAND_GROUP';
|
||||
|
||||
export type CommandOptionNonChoiceResolvableType = Exclude<
|
||||
CommandOptionDataTypeResolvable,
|
||||
CommandOptionChoiceResolvableType | CommandOptionSubOptionResolvableType
|
||||
>;
|
||||
|
||||
export interface BaseApplicationCommandOptionsData {
|
||||
name: string;
|
||||
description: string;
|
||||
required?: boolean;
|
||||
}
|
||||
|
||||
export interface UserApplicationCommandData extends BaseApplicationCommandData {
|
||||
type: 'USER' | ApplicationCommandTypes.USER;
|
||||
}
|
||||
@@ -2917,19 +2944,35 @@ export type ApplicationCommandData =
|
||||
| MessageApplicationCommandData
|
||||
| ChatInputApplicationCommandData;
|
||||
|
||||
export interface ApplicationCommandOptionData {
|
||||
type: ApplicationCommandOptionType | ApplicationCommandOptionTypes;
|
||||
name: string;
|
||||
description: string;
|
||||
required?: boolean;
|
||||
export interface ApplicationCommandChoicesData extends BaseApplicationCommandOptionsData {
|
||||
type: CommandOptionChoiceResolvableType;
|
||||
choices?: ApplicationCommandOptionChoice[];
|
||||
options?: ApplicationCommandOptionData[];
|
||||
}
|
||||
|
||||
export interface ApplicationCommandOption extends ApplicationCommandOptionData {
|
||||
export interface ApplicationCommandSubGroupData extends BaseApplicationCommandOptionsData {
|
||||
type: 'SUB_COMMAND_GROUP' | ApplicationCommandOptionTypes.SUB_COMMAND_GROUP;
|
||||
options?: ApplicationCommandSubCommandData[];
|
||||
}
|
||||
|
||||
export interface ApplicationCommandSubCommandData extends BaseApplicationCommandOptionsData {
|
||||
type: 'SUB_COMMAND' | ApplicationCommandOptionTypes.SUB_COMMAND;
|
||||
options?: (ApplicationCommandChoicesData | ApplicationCommandNonOptionsData)[];
|
||||
}
|
||||
|
||||
export interface ApplicationCommandNonOptionsData extends BaseApplicationCommandOptionsData {
|
||||
type: CommandOptionNonChoiceResolvableType;
|
||||
}
|
||||
|
||||
export type ApplicationCommandOptionData =
|
||||
| ApplicationCommandSubGroupData
|
||||
| ApplicationCommandNonOptionsData
|
||||
| ApplicationCommandChoicesData
|
||||
| ApplicationCommandSubCommandData;
|
||||
|
||||
export type ApplicationCommandOption = ApplicationCommandOptionData & {
|
||||
type: ApplicationCommandOptionType;
|
||||
options?: ApplicationCommandOption[];
|
||||
}
|
||||
};
|
||||
|
||||
export interface ApplicationCommandOptionChoice {
|
||||
name: string;
|
||||
|
||||
Reference in New Issue
Block a user