O que são arquivos `.d.ts` no TypeScript e para que servem?
Olá a todos! Acabei de começar a estudar TypeScript e me deparei com arquivos com extensão `.d.ts`. Para ser honesto, fiquei um pouco confuso. Na documentação oficial, diz que são "arquivos de declaração", mas não entendo completamente o propósito deles.
Tenho um projeto onde uso a biblioteca `lodash`. Instalei ela via npm, mas o TypeScript reclama que não consegue encontrar os tipos para `lodash`. Tive que instalar separadamente `@types/lodash`, e depois disso apareceram arquivos `.d.ts` no projeto.
Tentei escrever meu próprio arquivo `.d.ts` para uma função simples:
```typescript
// utils.d.ts
declare function greet(name: string): string;
```
Mas quando tentei usar essa função no meu código, o TypeScript disse que a função não existe. O que estou fazendo de errado?
Expliquem, por favor:
1. O que são arquivos `.d.ts` em palavras simples?
2. Em quais casos preciso criá-los manualmente?
3. Como conectar e usar corretamente as declarações de tipos desses arquivos?
Agradeço desde já!