Avatar ·

O que são arquivos *.d.ts no TypeScript e para que servem?

Olá a todos! Comecei a estudar TypeScript recentemente e me deparei com algo que não entendo. Em projetos, vejo frequentemente arquivos com extensão `.d.ts`. Por exemplo, existe a pasta `node_modules`, e dentro dela, nas bibliotecas, há esses arquivos. Abri um deles e tinha algo como: ```typescript declare module 'lodash' { export function chunk(array: T[], size?: number): T[][]; } ``` Não entendo bem o que é isso. É algum tipo separado de arquivo TypeScript? Para que servem, se temos arquivos `.ts` comuns? Tentei criar um arquivo desses e escrever algum código, mas o compilador reclama quando tento declarar variáveis sem a palavra-chave `declare`. Além disso, notei que se eu escrevo `import` de uma biblioteca que não tem esses arquivos, o TypeScript dá erro "Cannot find module". Então, esses arquivos `.d.ts` ajudam o TypeScript a entender quais tipos existem no código JavaScript comum? Agradeço por uma explicação detalhada, de preferência com exemplos.