Avatar ·

Definição de array com múltiplos tipos em TypeScript: union types vs tuplas

Olá a todos! Recentemente comecei a estudar TypeScript e me deparei com um problema ao declarar um array que pode conter elementos de diferentes tipos. Tenho uma função que recebe um array de strings e números. Por exemplo, quero armazenar o ID (número) e o nome (string) de um usuário em um mesmo array. Foi assim que tentei fazer: ```typescript let users = [1, "Alice", 2, "Bob"]; ``` TypeScript infere automaticamente o tipo `(string | number)[]`, o que parece funcionar. Mas depois precisei controlar rigorosamente a ordem: primeiro número, depois string. Tentei assim: ```typescript let user: [number, string] = [1, "Alice"]; ``` Aqui está tudo bem. Mas o que fazer se eu quiser um array dessas tuplas? Escrevi: ```typescript let users: [number, string][] = [[1, "Alice"], [2, "Bob"]]; ``` Mas depois surgiu outra tarefa: o array pode conter OU strings, OU números, mas não ambos no mesmo elemento. Por exemplo, uma lista de tags: `["typescript", 42, "javascript", 100]`. Pergunta: como