types(ApplicationSubcommandData): allow autocomplete to be true (#6981)

This commit is contained in:
Suneet Tipirneni
2021-11-16 12:32:25 -05:00
committed by GitHub
parent 06cd16fe97
commit ecc61f3c74
2 changed files with 23 additions and 8 deletions

15
typings/index.d.ts vendored
View File

@@ -3326,6 +3326,7 @@ export interface BaseApplicationCommandOptionsData {
name: string;
description: string;
required?: boolean;
autocomplete?: never;
}
export interface UserApplicationCommandData extends BaseApplicationCommandData {
@@ -3358,7 +3359,7 @@ export interface ApplicationCommandChannelOption extends BaseApplicationCommandO
channelTypes?: (keyof typeof ChannelTypes)[];
}
export interface ApplicationCommandAutocompleteOption extends BaseApplicationCommandOptionsData {
export interface ApplicationCommandAutocompleteOption extends Omit<BaseApplicationCommandOptionsData, 'autocomplete'> {
type:
| 'STRING'
| 'NUMBER'
@@ -3369,13 +3370,13 @@ export interface ApplicationCommandAutocompleteOption extends BaseApplicationCom
autocomplete: true;
}
export interface ApplicationCommandChoicesData extends BaseApplicationCommandOptionsData {
export interface ApplicationCommandChoicesData extends Omit<BaseApplicationCommandOptionsData, 'autocomplete'> {
type: CommandOptionChoiceResolvableType;
choices?: ApplicationCommandOptionChoice[];
autocomplete?: false;
}
export interface ApplicationCommandChoicesOption extends BaseApplicationCommandOptionsData {
export interface ApplicationCommandChoicesOption extends Omit<BaseApplicationCommandOptionsData, 'autocomplete'> {
type: Exclude<CommandOptionChoiceResolvableType, ApplicationCommandOptionTypes>;
choices?: ApplicationCommandOptionChoice[];
autocomplete?: false;
@@ -3407,7 +3408,13 @@ export interface ApplicationCommandSubGroup extends Omit<BaseApplicationCommandO
export interface ApplicationCommandSubCommandData extends Omit<BaseApplicationCommandOptionsData, 'required'> {
type: 'SUB_COMMAND' | ApplicationCommandOptionTypes.SUB_COMMAND;
options?: (ApplicationCommandChoicesData | ApplicationCommandNonOptionsData | ApplicationCommandChannelOptionData)[];
options?: (
| ApplicationCommandChoicesData
| ApplicationCommandNonOptionsData
| ApplicationCommandChannelOptionData
| ApplicationCommandAutocompleteOption
| ApplicationCommandNumericOptionData
)[];
}
export interface ApplicationCommandSubCommand extends Omit<BaseApplicationCommandOptionsData, 'required'> {

View File

@@ -79,6 +79,8 @@ import {
User,
VoiceChannel,
Shard,
ApplicationCommandAutocompleteOption,
ApplicationCommandNumericOptionData,
} from '.';
import type { ApplicationCommandOptionTypes } from './enums';
@@ -454,8 +456,8 @@ const baseCommandOptionData = {
assertType<ApplicationCommandOptionData>({
...baseCommandOptionData,
type: 'STRING',
// @ts-expect-error
autocomplete: true,
// @ts-expect-error
choices: [],
});
@@ -475,16 +477,16 @@ assertType<ApplicationCommandOptionData>({
assertType<ApplicationCommandOptionData>({
...baseCommandOptionData,
type: 'NUMBER',
// @ts-expect-error
autocomplete: true,
// @ts-expect-error
choices: [],
});
assertType<ApplicationCommandOptionData>({
...baseCommandOptionData,
type: 'INTEGER',
// @ts-expect-error
autocomplete: true,
// @ts-expect-error
choices: [],
});
@@ -893,7 +895,13 @@ declare const applicationSubCommandData: ApplicationCommandSubCommandData;
// Check that only subcommands can have no subcommand or subcommand group sub-options.
assertType<
| (ApplicationCommandChoicesData | ApplicationCommandNonOptionsData | ApplicationCommandChannelOptionData)[]
| (
| ApplicationCommandChoicesData
| ApplicationCommandNonOptionsData
| ApplicationCommandChannelOptionData
| ApplicationCommandAutocompleteOption
| ApplicationCommandNumericOptionData
)[]
| undefined
>(applicationSubCommandData.options);
}