Typen `unknown` und `any` in TypeScript: Was ist der Unterschied und wann verwendet man was?
Hallo zusammen! Ich habe vor kurzem angefangen, TypeScript zu lernen, und bin auf zwei Typen gestoßen, die auf den ersten Blick sehr ähnlich erscheinen: `any` und `unknown`. Beide erlauben es, Werte jeden Typs zu speichern, aber ich habe das Gefühl, dass es einen wichtigen Unterschied gibt, den ich übersehe.\n\nZum Beispiel schreibe ich eine Funktion, die Daten von einer API erhält. Ich weiß nicht im Voraus, was genau kommt – es könnte ein Objekt, ein String oder eine Zahl sein. So mache ich das derzeit:\n\n```typescript\nfunction processData(data: any) {\n console.log(data.toUpperCase()); // Funktioniert ohne Fehler, kann aber zur Laufzeit abstürzen\n}\n```\n\nAber wenn ich versuche, `unknown` zu verwenden, erhalte ich einen Fehler:\n\n```typescript\nfunction processDataSafe(data: unknown) {\n console.log(data.toUpperCase()); // Fehler: Object is of type 'unknown'\n}\n```\n\nWarum