types(ThreadMemberManager): Fix return type of fetching members with no arguments (#8060)

* types(ThreadMemberManager): non-optional first overload for fetching

* test: organisation
This commit is contained in:
Jiralite
2022-06-10 20:20:00 +01:00
committed by GitHub
parent c0f079d232
commit 2392a6f5de
2 changed files with 15 additions and 12 deletions

View File

@@ -3411,7 +3411,7 @@ export class ThreadMemberManager extends CachedManager<Snowflake, ThreadMember,
public thread: AnyThreadChannel;
public get me(): ThreadMember | null;
public add(member: UserResolvable | '@me', reason?: string): Promise<Snowflake>;
public fetch(options?: ThreadMemberResolvable | FetchThreadMemberOptions): Promise<ThreadMember>;
public fetch(options: ThreadMemberResolvable | FetchThreadMemberOptions): Promise<ThreadMember>;
public fetch(options?: FetchThreadMembersOptions): Promise<Collection<Snowflake, ThreadMember>>;
public fetchMe(options?: BaseFetchOptions): Promise<ThreadMember>;
public remove(id: Snowflake | '@me', reason?: string): Promise<Snowflake>;

View File

@@ -126,6 +126,7 @@ import {
MessageContextMenuCommandInteraction,
UserContextMenuCommandInteraction,
AnyThreadChannel,
ThreadMemberManager,
} from '.';
import { expectAssignable, expectNotAssignable, expectNotType, expectType } from 'tsd';
import { UnsafeButtonBuilder, UnsafeEmbedBuilder, UnsafeSelectMenuBuilder } from '@discordjs/builders';
@@ -560,17 +561,6 @@ client.on('guildCreate', async g => {
channel.send({ components: [row, row2] });
}
if (channel.isThread()) {
const fetchedMember = await channel.members.fetch('12345678');
const fetchedMember2 = await channel.members.fetch({ member: '12345678', cache: false, force: true });
expectType<ThreadMember>(fetchedMember);
expectType<ThreadMember>(fetchedMember2);
const fetchedMemberCol = await channel.members.fetch({ cache: true });
expectType<Collection<Snowflake, ThreadMember>>(fetchedMemberCol);
// @ts-expect-error The `force` option cannot be used alongside fetching all thread members.
const fetchedMemberCol2 = await channel.members.fetch({ cache: true, force: false });
}
channel.setName('foo').then(updatedChannel => {
console.log(`New channel name: ${updatedChannel.name}`);
});
@@ -1110,6 +1100,19 @@ declare const guildBanManager: GuildBanManager;
guildBanManager.fetch({ user: '1234567890', after: '1234567890', cache: true, force: false });
}
declare const threadMemberManager: ThreadMemberManager;
{
expectType<Promise<ThreadMember>>(threadMemberManager.fetch('12345678'));
expectType<Promise<ThreadMember>>(threadMemberManager.fetch({ member: '12345678', cache: false }));
expectType<Promise<ThreadMember>>(threadMemberManager.fetch({ member: '12345678', force: true }));
expectType<Promise<ThreadMember>>(threadMemberManager.fetch({ member: '12345678', cache: false, force: true }));
expectType<Promise<Collection<Snowflake, ThreadMember>>>(threadMemberManager.fetch());
expectType<Promise<Collection<Snowflake, ThreadMember>>>(threadMemberManager.fetch({}));
expectType<Promise<Collection<Snowflake, ThreadMember>>>(threadMemberManager.fetch({ cache: true }));
// @ts-expect-error The `force` option cannot be used alongside fetching all thread members.
threadMemberManager.fetch({ cache: true, force: false });
}
declare const typing: Typing;
expectType<User | PartialUser>(typing.user);
if (typing.user.partial) expectType<null>(typing.user.username);