Básicamente, estaba buscando en la carpeta de escritura de discordjs y encontré esto:
export interface ClientEvents { ... messageCreate: [message: Message] <- what? messageDelete: [message: Message | PartialMessage] }¿Qué es exactamente lo que están tratando de hacer aquí? He oído hablar de firmas de índice, como en este ejemplo aquí:
interface Foo { [bar: string]: any }Pero nunca he visto ninguna sintaxis que se asemeje a esta tanto en TS como en JS.
Créditos al comentario de jonrsharpe debajo de la pregunta. La sintaxis mencionada fue una variación de una tupla en TypeScript 4.0 que incluye etiquetas:
Tupla regular:
// has no indication of parameter names type Range = [number, number]Tupla etiquetada:
type Range = [start: number, end: number] // spreading this labelled tuple in a function's parameters... function getRange(...range: Range) // ... results in the following at compile time: function getRange(start: number, end: number)¡Muy genial!