types(CategoryChannel): createChannel should default to a text channel (#7132)

This commit is contained in:
Suneet Tipirneni
2021-12-22 08:00:07 -05:00
committed by GitHub
parent b763dabaa9
commit a0a5b0e4fa
2 changed files with 11 additions and 10 deletions

16
typings/index.d.ts vendored
View File

@@ -494,19 +494,21 @@ export type CategoryChannelTypes = ExcludeEnum<
export class CategoryChannel extends GuildChannel { export class CategoryChannel extends GuildChannel {
public readonly children: Collection<Snowflake, Exclude<NonThreadGuildBasedChannel, CategoryChannel>>; public readonly children: Collection<Snowflake, Exclude<NonThreadGuildBasedChannel, CategoryChannel>>;
public type: 'GUILD_CATEGORY'; public type: 'GUILD_CATEGORY';
/** @deprecated See [Self-serve Game Selling Deprecation](https://support-dev.discord.com/hc/en-us/articles/4414590563479) for more information */
public createChannel( public createChannel<T extends Exclude<CategoryChannelTypes, 'GUILD_STORE'>>(
name: string,
options: CategoryCreateChannelOptions & { type: 'GUILD_STORE' },
): Promise<StoreChannel>;
public createChannel<T extends CategoryChannelTypes>(
name: string, name: string,
options: CategoryCreateChannelOptions & { type: T }, options: CategoryCreateChannelOptions & { type: T },
): Promise<MappedChannelCategoryTypes[T]>; ): Promise<MappedChannelCategoryTypes[T]>;
/** @deprecated See [Self-serve Game Selling Deprecation](https://support-dev.discord.com/hc/en-us/articles/4414590563479) for more information */
public createChannel( public createChannel(
name: string, name: string,
options: CategoryCreateChannelOptions, options: CategoryCreateChannelOptions & { type: 'GUILD_STORE' | ChannelTypes.GUILD_STORE },
): Promise<StoreChannel>;
public createChannel(
name: string,
options?: CategoryCreateChannelOptions,
): Promise<Exclude<NonThreadGuildBasedChannel, CategoryChannel>>; ): Promise<Exclude<NonThreadGuildBasedChannel, CategoryChannel>>;
} }

View File

@@ -859,9 +859,8 @@ declare const categoryChannel: CategoryChannel;
expectType<Promise<NewsChannel>>(categoryChannel.createChannel('name', { type: 'GUILD_NEWS' })); expectType<Promise<NewsChannel>>(categoryChannel.createChannel('name', { type: 'GUILD_NEWS' }));
expectDeprecated(categoryChannel.createChannel('name', { type: 'GUILD_STORE' })); expectDeprecated(categoryChannel.createChannel('name', { type: 'GUILD_STORE' }));
expectType<Promise<StageChannel>>(categoryChannel.createChannel('name', { type: 'GUILD_STAGE_VOICE' })); expectType<Promise<StageChannel>>(categoryChannel.createChannel('name', { type: 'GUILD_STAGE_VOICE' }));
expectType<Promise<TextChannel | VoiceChannel | NewsChannel | StoreChannel | StageChannel>>( expectType<Promise<Exclude<NonThreadGuildBasedChannel, CategoryChannel>>>(categoryChannel.createChannel('name', {}));
categoryChannel.createChannel('name', {}), expectType<Promise<Exclude<NonThreadGuildBasedChannel, CategoryChannel>>>(categoryChannel.createChannel('name'));
);
} }
declare const guildChannelManager: GuildChannelManager; declare const guildChannelManager: GuildChannelManager;