typings: Collector filter parameter inference (#6574)

This commit is contained in:
Suneet Tipirneni
2021-09-01 06:07:26 -04:00
committed by GitHub
parent d16ada9708
commit 08419561ed
2 changed files with 60 additions and 10 deletions

View File

@@ -510,6 +510,53 @@ client.on('messageCreate', message => {
// Verify that additional options don't affect default collector types.
const semiDefaultCollector = message.createMessageComponentCollector({ interactionType: 'APPLICATION_COMMAND' });
assertType<InteractionCollector<MessageComponentInteraction>>(semiDefaultCollector);
// Make sure filter parameters are properly inferred.
message.createMessageComponentCollector({
filter: i => {
assertType<MessageComponentInteraction>(i);
return true;
},
});
message.createMessageComponentCollector({
componentType: 'BUTTON',
filter: i => {
assertType<ButtonInteraction>(i);
return true;
},
});
message.createMessageComponentCollector({
componentType: 'SELECT_MENU',
filter: i => {
assertType<SelectMenuInteraction>(i);
return true;
},
});
message.awaitMessageComponent({
filter: i => {
assertType<MessageComponentInteraction>(i);
return true;
},
});
message.awaitMessageComponent({
componentType: 'BUTTON',
filter: i => {
assertType<ButtonInteraction>(i);
return true;
},
});
message.awaitMessageComponent({
componentType: 'SELECT_MENU',
filter: i => {
assertType<SelectMenuInteraction>(i);
return true;
},
});
});
client.on('interaction', async interaction => {