Avatar ·

Was macht das Schlüsselwort `is` in TypeScript und wie verwendet man es richtig?

Hallo zusammen! Ich habe angefangen, TypeScript zu lernen und bin auf das Schlüsselwort `is` gestoßen, das in einigen Beispielen verwendet wird. Ehrlich gesagt verstehe ich nicht ganz, wozu es dient und wie es sich von einem normalen Rückgabetyp `boolean` unterscheidet.\n\nHier ist ein Beispiel, das ich gefunden habe:\n\n```typescript\nfunction isString(value: unknown): boolean {\n return typeof value === "string";\n}\n```\n\nAber ich habe auch diese Variante gesehen:\n\n```typescript\nfunction isString(value: unknown): value is string {\n return typeof value === "string";\n}\n```\n\nWas ist der Unterschied? Ich verstehe, dass `value is string` im Rückgabetyp eine spezielle Konstruktion ist, aber ich kann nicht erfassen, wann man sie verwenden soll. Wenn ich einfach `boolean` zurückgebe, kann TypeScript doch auch verstehen, dass der Wert ein String ist, nach der Überprüfung? Oder nicht?\n\nIch habe versucht, diesen Code zu schreiben:\n\n```typescript\nfunction isString(value: unknown): boolean {\n return typeof value === "string";\n}\n\nfunction processValue(value: unknown) {\n if (isString(value)) {