¿Qué son los archivos *.d.ts en TypeScript y para qué sirven?
¡Hola a todos! Empecé a estudiar TypeScript recientemente y me encontré con algo que no entiendo. En los proyectos veo a menudo archivos con la extensión `.d.ts`. Por ejemplo, hay una carpeta `node_modules`, y dentro de las librerías hay esos archivos. Abrí uno de ellos, y había algo como:
```typescript
declare module 'lodash' {
export function chunk(array: T[], size?: number): T[][];
}
```
No entiendo bien qué es esto. ¿Es algún tipo separado de archivos TypeScript? ¿Para qué sirven si tenemos archivos `.ts` normales? Intenté crear uno de esos archivos y escribir algo de código, pero el compilador se queja cuando intento declarar variables sin la palabra clave `declare`.
También noté que si hago `import` de una librería que no tiene esos archivos, TypeScript da el error "Cannot find module". ¿Entonces estos archivos `.d.ts` ayudan a TypeScript a entender qué tipos hay en el código JavaScript normal? Agradecería una explicación detallada, preferiblemente con ejemplos.