Warum wird das Schlüsselwort `declare` in TypeScript benötigt? Erklären Sie anhand von Beispielen
Hallo zusammen! Ich habe angefangen, TypeScript zu lernen und bin auf das Schlüsselwort `declare` gestoßen. In der offiziellen Dokumentation steht, dass es verwendet wird, um "Variablen, Funktionen und Klassen zu deklarieren, die woanders existieren". Aber ich verstehe nicht ganz, warum das nötig ist und wie es in der Praxis funktioniert.
Zum Beispiel schreibe ich ein einfaches Skript, das die globale Variable `$` (jQuery) verwendet. Ich weiß, dass sie über CDN in HTML eingebunden ist, aber TypeScript meckert, dass `$` nicht definiert ist. Ich habe versucht zu schreiben:
```typescript
declare var $: any;
```
Und der Fehler verschwand. Aber warum kann ich nicht einfach `var $: any;` schreiben? Was ist der Unterschied? Wenn ich `let $: any;` schreibe, funktioniert das auch, aber dann denkt TypeScript, dass ich eine neue Variable erstelle, anstatt eine bereits existierende zu beschreiben.
Außerdem habe ich gesehen, dass `declare` in `.d.ts`-Dateien verwendet wird. Wozu sind diese überhaupt nötig, wenn man alles in normalen `.ts`-Dateien schreiben kann? Erklären Sie bitte in einfachen Worten, wozu genau `declare` dient und in welchen Fällen es verwendet wird.