Avatar ·

unknown vs any: Was ist der Unterschied und wann verwendet man was in TypeScript?

Hallo! Ich habe vor kurzem angefangen, TypeScript zu lernen und bin auf die Typen `any` und `unknown` gestoßen. Anscheinend erlauben beide, alles zu speichern, aber ich verstehe nicht ganz, worin der Unterschied besteht und wann man welchen verwenden sollte. Hier ist ein Beispiel, das mich verwirrt. Ich habe eine Funktion, die Daten von einer API erhält, und ich weiß nicht genau, was ankommt: ```typescript function processData(data: any) { console.log(data.toUpperCase()); // Funktioniert, aber wenn data kein string ist, stürzt es zur Laufzeit ab } ``` Wenn ich `any` durch `unknown` ersetze: ```typescript function processData(data: unknown) { console.log(data.toUpperCase()); // Compiler-Fehler: Object is of type 'unknown' } ``` Es stellt sich heraus, dass der Code mit `unknown` nicht einmal kompiliert wird. Wozu braucht man dann `unknown`, wenn es nur stört? Ich habe gehört, dass `unknown` s