Avatar ·

Sobrecarga de funções em TypeScript: como declarar e usar corretamente?

Olá a todos! Comecei a estudar TypeScript recentemente e me deparei com um problema ao tentar usar sobrecarga de funções. Tenho uma função `format` que deve funcionar de forma diferente dependendo do tipo dos argumentos passados: 1. Se uma string e um número forem passados — formatar a string com repetição. 2. Se duas strings forem passadas — combiná-las com um separador. 3. Se apenas um número for passado — retorná-lo como string com um prefixo. Escrevi o seguinte código, mas o TypeScript reclama: ```typescript function format(a: string, b: number): string; function format(a: string, b: string): string; function format(a: number): string; function format(a: string | number, b?: string | number): string { if (typeof a === 'number') { return `ID: ${a}`; } if (typeof b === 'number') { return a.repeat(b); } if (typeof b === 'string') { return `${a} - ${b}`; } return a; } ``` Erro: `This overload signature is not compatible with its implementation signature.` Eu