From 73de568a05fa50f0f643439dc3a3e8e159cea0b2 Mon Sep 17 00:00:00 2001 From: Philippe Torrel Date: Mon, 19 Oct 2026 13:18:13 +0200 Subject: [PATCH] --- .../docs/in-operator-vs-type-predicate.pdf | Bin 0 -> 212705 bytes .../assets/js/04_in-operator.js | 25 +++++ .../assets/js/05_kontrollflussanalyse.js | 37 ++++++++ .../assets/js/06_type-predicate.js | 28 ++++++ .../tag31/01_ts-narrowing-guards/index.html | 7 +- .../src/04_in-operator.md | 86 ++++++++++++++++++ .../src/04_in-operator.ts | 54 ++++++++++- .../src/05_kontrollflussanalyse.ts | 52 +++++++++++ .../src/06_type-predicate.ts | 57 ++++++++++++ 9 files changed, 342 insertions(+), 4 deletions(-) create mode 100644 05_typescript/docs/in-operator-vs-type-predicate.pdf create mode 100644 05_typescript/unterricht/tag31/01_ts-narrowing-guards/assets/js/05_kontrollflussanalyse.js create mode 100644 05_typescript/unterricht/tag31/01_ts-narrowing-guards/assets/js/06_type-predicate.js create mode 100644 05_typescript/unterricht/tag31/01_ts-narrowing-guards/src/04_in-operator.md create mode 100644 05_typescript/unterricht/tag31/01_ts-narrowing-guards/src/05_kontrollflussanalyse.ts create mode 100644 05_typescript/unterricht/tag31/01_ts-narrowing-guards/src/06_type-predicate.ts diff --git a/05_typescript/docs/in-operator-vs-type-predicate.pdf b/05_typescript/docs/in-operator-vs-type-predicate.pdf new file mode 100644 index 0000000000000000000000000000000000000000..57c292309d4d44221b31c2adc51e0c463fa74dcd GIT binary patch literal 212705 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 z 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 h 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 Wx_PX>@dQd97?NH{NJZx`{r>=E$S=GA literal 0 HcmV?d00001 diff --git a/05_typescript/unterricht/tag31/01_ts-narrowing-guards/assets/js/04_in-operator.js b/05_typescript/unterricht/tag31/01_ts-narrowing-guards/assets/js/04_in-operator.js index 1cd87df..873a7ab 100644 --- a/05_typescript/unterricht/tag31/01_ts-narrowing-guards/assets/js/04_in-operator.js +++ b/05_typescript/unterricht/tag31/01_ts-narrowing-guards/assets/js/04_in-operator.js @@ -1,5 +1,30 @@ (() => { // src/04_in-operator.ts { + const operate = (vehicle) => { + if ("drive" in vehicle) { + vehicle.drive(); + } else { + vehicle.sail(); + } + }; + const car = { drive: () => console.log("I'm driving") }; + const sealander = { sail: () => console.log("I'm sailing") }; + operate(car); + operate(sealander); + const move = (entity) => { + if ("walk" in entity) { + entity.walk?.(); + } else if ("fly" in entity && entity.fly) { + entity.fly(); + } else if ("bark" in entity) { + entity.bark(); + } + }; + const dog = { bark: () => console.log("Woof") }; + const bird = { fly: () => console.log("Flying") }; + const robot = { walk: () => console.log("Walking") }; + const optimus = { fly: () => console.log("Flying Robo") }; + move(robot); } })(); diff --git a/05_typescript/unterricht/tag31/01_ts-narrowing-guards/assets/js/05_kontrollflussanalyse.js b/05_typescript/unterricht/tag31/01_ts-narrowing-guards/assets/js/05_kontrollflussanalyse.js new file mode 100644 index 0000000..9428cf2 --- /dev/null +++ b/05_typescript/unterricht/tag31/01_ts-narrowing-guards/assets/js/05_kontrollflussanalyse.js @@ -0,0 +1,37 @@ +(() => { + // src/05_kontrollflussanalyse.ts + { + const processData = (data) => { + if (typeof data === "boolean") { + console.log("Boolean value:", data); + } else if (typeof data === "string") { + console.log("String value:", data.toUpperCase()); + } else { + console.log("Number value:", data.toFixed(2)); + } + }; + processData(true); + processData("hello"); + processData(123); + const checkValue = (value) => { + if (typeof value === "string") { + return `String: ${value}`; + } + return `Number: ${value.toFixed(2)}`; + }; + console.log(checkValue("hello")); + console.log(checkValue(123)); + const describeInput = (input) => { + if (input === null) { + return "No input provided."; + } + if (typeof input === "string") { + return `String input: ${input.toUpperCase()}`; + } + return `Number input: ${input.toFixed(2)}`; + }; + console.log(describeInput("hello")); + console.log(describeInput(123)); + console.log(describeInput(null)); + } +})(); diff --git a/05_typescript/unterricht/tag31/01_ts-narrowing-guards/assets/js/06_type-predicate.js b/05_typescript/unterricht/tag31/01_ts-narrowing-guards/assets/js/06_type-predicate.js new file mode 100644 index 0000000..f995964 --- /dev/null +++ b/05_typescript/unterricht/tag31/01_ts-narrowing-guards/assets/js/06_type-predicate.js @@ -0,0 +1,28 @@ +(() => { + // src/06_type-predicate.ts + { + const isFish = (pet2) => { + return Object.hasOwn(pet2, "swim"); + }; + const handlePet = (pet2) => { + if (isFish(pet2)) { + pet2.swim(); + } else { + pet2.fly(); + } + }; + const pet = { swim: () => console.log("Is swimming") }; + const amsel = { fly: () => console.log("Is flying") }; + handlePet(pet); + handlePet(amsel); + const zoo = [ + { swim: () => console.log("Fish swimming") }, + { fly: () => console.log("Bird flying") }, + { fly: () => console.log("Another Bird flying") }, + { fly: () => console.log("Bird3 flying") }, + { swim: () => console.log("Another Fish flying") } + ]; + const fishes = zoo.filter((pet2) => isFish(pet2)); + fishes.forEach((fish) => fish.swim()); + } +})(); diff --git a/05_typescript/unterricht/tag31/01_ts-narrowing-guards/index.html b/05_typescript/unterricht/tag31/01_ts-narrowing-guards/index.html index e99f67d..d28f648 100644 --- a/05_typescript/unterricht/tag31/01_ts-narrowing-guards/index.html +++ b/05_typescript/unterricht/tag31/01_ts-narrowing-guards/index.html @@ -6,9 +6,12 @@ TypeScript - Grundlagen - + +

diff --git a/05_typescript/unterricht/tag31/01_ts-narrowing-guards/src/04_in-operator.md b/05_typescript/unterricht/tag31/01_ts-narrowing-guards/src/04_in-operator.md new file mode 100644 index 0000000..71a8048 --- /dev/null +++ b/05_typescript/unterricht/tag31/01_ts-narrowing-guards/src/04_in-operator.md @@ -0,0 +1,86 @@ +## `in`-Operator vs Type Predicate + +Der `in`-Operator fungiert in TypeScript als **eingebauter Type Guard** und bewirkt ein automatisches **Type Narrowing**, verhält sich im Detail jedoch flexibler und nachsichtiger als ein handgeschriebenes Type Predicate (`pet is Fish`). + +--- + +### Gemeinsamkeit + +Beide Mechanismen verengen eine Union: + +```typescript +// Variante A: Direkt mit `in` +if ('swim' in pet) { + pet.swim(); // TS verengt pet zu Fish +} else { + pet.fly(); // TS verengt pet zu Bird +} + +// Variante B: Mit Type Predicate +if (isFish(pet)) { + pet.swim(); // TS verengt pet zu Fish +} else { + pet.fly(); // TS verengt pet zu Bird +} + +``` + +In einfachen Unions mit distinkten Properties ist der praktische Effekt im `if`/`else`-Block identisch. + +--- + +### Wesentliche Unterschiede + +| Kriterium | `in`-Operator | Eigene Predicate-Funktion (`pet is Fish`) | +| --- | --- | --- | +| **Prüflogik** | Prüft ausschließlich die **Existenz des Keys** (auch in der Prototypenkette). | Beliebige Laufzeit-Validierung (Werte, Typen, verschachtelte Felder, Regex etc.). | +| **Wiederverwendbarkeit** | Nur inline an der Stelle der Prüfung. | Modular exportierbar und z. B. in `.filter(isFish)` nutzbar. | +| **Typsicherheit** | **Vollständig vom Compiler verifiziert.** TS schaut sich die Typdefinitionen an. | **Verhält sich wie ein Type Cast (`as`).** TS vertraut blind dem Rückgabewert `pet is Fish`, selbst wenn die Laufzeitprüfung fehlerhaft ist. | +| **Umgang mit unbekannten Typen** | Verengt `object` oder `unknown` zu `Record<"swim", unknown> & object`. | Verengt direkt auf den Zieltyp `Fish`. | + +--- + +### 1. Type Predicates sind "Vertrauenssache" (Compiler prüft nicht den Inhalt) + +Wenn du ein Prädikat schreibst: + +```typescript +const isFish = (pet: Fish | Bird): pet is Fish => { + return true; // Bug! +}; + +if (isFish(pet)) { + pet.swim(); // TS meckert nicht, crasht aber zur Laufzeit +} + +``` + +TypeScript überprüft nicht, ob die Logik im Body von `isFish` tatsächlich beweist, dass es sich um einen Fisch handelt. Beim `in`-Operator hingegen wertet TypeScript die tatsächlichen Eigenschaften der beteiligten Typen aus. + +--- + +### 2. Wiederverwendbarkeit in Array-Methoden + +Ein großer Vorteil des Type Predicates ist die Verwendung in Higher-Order Functions: + +```typescript +const pets: (Fish | Bird)[] = [/* ... */]; + +// Funktioniert nur mit Predicate: +const fishes: Fish[] = pets.filter(isFish); + +// Funktioniert nicht direkt mit 'in': +// pets.filter(pet => 'swim' in pet) liefert weiterhin (Fish | Bird)[] + +``` + +--- + +### 3. Prototypenkette vs. Own Properties + +In deinem Code-Kommentar steht: + +* `Object.hasOwn(pet, 'swim')` bzw. `pet.hasOwnProperty('swim')` prüft nur **eigene Eigenschaften**. +* `'swim' in pet` prüft auch Methoden, die auf dem **Prototyp** definiert sind (z. B. wenn `Fish` eine Klasse ist). + +Wenn `Fish` als Klasse deklariert ist, liegt `swim()` auf `Fish.prototype`. In diesem Fall würde `Object.hasOwn(pet, 'swim')` zur Laufzeit `false` liefern, während `'swim' in pet` korrekt `true` ergibt. \ No newline at end of file diff --git a/05_typescript/unterricht/tag31/01_ts-narrowing-guards/src/04_in-operator.ts b/05_typescript/unterricht/tag31/01_ts-narrowing-guards/src/04_in-operator.ts index 92a7231..45bfd6f 100644 --- a/05_typescript/unterricht/tag31/01_ts-narrowing-guards/src/04_in-operator.ts +++ b/05_typescript/unterricht/tag31/01_ts-narrowing-guards/src/04_in-operator.ts @@ -1,5 +1,55 @@ // In Operator - wird verwendet, um zu bestimmen, ob ein Objekt ein bestimmtes Property hat. { - type Car = { drive: () => void }; - type Boat = { sail: () => void }; + type Car = { + drive: () => void; + // drive():void + }; + type Boat = { + sail: () => void; + // sail(): void + }; + + const operate = (vehicle: Car | Boat) => { + // Property 'drive' does not exist on type 'Boat'. + // vehicle.drive(); // Property 'drive' does not exist on type 'Car | Boat'. + + // Object.hasOwn() führt kein narrowing aus | grenzt nicht den Datentyp ein + // if (Object.hasOwn(vehicle, 'drive')) { + if ('drive' in vehicle) { + vehicle.drive(); + } else { + vehicle.sail(); + } + }; + + const car: Car = { drive: () => console.log("I'm driving") }; + const sealander: Boat = { sail: () => console.log("I'm sailing") }; + + operate(car); + operate(sealander); + + // ------- + type Dog = { bark: () => void }; + type Bird = { fly: () => void }; + type Robot = { walk?: () => void; fly?: () => void | undefined }; + + const move = (entity: Dog | Bird | Robot) => { + if ('walk' in entity) { + entity.walk?.(); + } else if ('fly' in entity && entity.fly) { + entity.fly(); + } else if ('bark' in entity) { + entity.bark(); + } + }; + + const dog: Dog = { bark: () => console.log('Woof') }; + const bird: Bird = { fly: () => console.log('Flying') }; + const robot: Robot = { walk: () => console.log('Walking') }; + const optimus: Robot = { fly: () => console.log('Flying Robo') }; + + // move(dog); + // move(bird); + move(robot); + // move(optimus); } diff --git a/05_typescript/unterricht/tag31/01_ts-narrowing-guards/src/05_kontrollflussanalyse.ts b/05_typescript/unterricht/tag31/01_ts-narrowing-guards/src/05_kontrollflussanalyse.ts new file mode 100644 index 0000000..66b4791 --- /dev/null +++ b/05_typescript/unterricht/tag31/01_ts-narrowing-guards/src/05_kontrollflussanalyse.ts @@ -0,0 +1,52 @@ +// Kontrollflussanalyse +/* +In TypeScript wird der Kontrollfluss analysiert, um zu bestimmen, welche Typen eine Variable haben kann. Dies wird auch als "Type Narrowing" bezeichnet. +Type Narrowing wird verwendet, um den Typ einer Variablen zu beschränken, wenn bestimmte Bedingungen erfüllt sind. +*/ + +{ + const processData = (data: string | number | boolean): void => { + if (typeof data === 'boolean') { + console.log('Boolean value:', data); + } else if (typeof data === 'string') { + console.log('String value:', data.toUpperCase()); + } else { + console.log('Number value:', data.toFixed(2)); + } + }; + + processData(true); + processData('hello'); + processData(123); + + // Kontrollfluss mit Early Returns + + const checkValue = (value: string | number): string => { + // Guard + if (typeof value === 'string') { + return `String: ${value}`; // early return bei Narrowing + } + + return `Number: ${value.toFixed(2)}`; + }; + + console.log(checkValue('hello')); + console.log(checkValue(123)); + + // --- + const describeInput = (input: string | number | null): string => { + if (input === null) { + return 'No input provided.'; + } + + if (typeof input === 'string') { + return `String input: ${input.toUpperCase()}`; + } + + return `Number input: ${input.toFixed(2)}`; + }; + + console.log(describeInput('hello')); + console.log(describeInput(123)); + console.log(describeInput(null)); +} diff --git a/05_typescript/unterricht/tag31/01_ts-narrowing-guards/src/06_type-predicate.ts b/05_typescript/unterricht/tag31/01_ts-narrowing-guards/src/06_type-predicate.ts new file mode 100644 index 0000000..0740dd7 --- /dev/null +++ b/05_typescript/unterricht/tag31/01_ts-narrowing-guards/src/06_type-predicate.ts @@ -0,0 +1,57 @@ +// Type Predicate +/* +Ein Type Predicate ist eine besondere Art von Funktion, die einen booleschen Wert zurückgibt, der angibt, ob eine Variable einem bestimmten Typ entspricht. + +WICHTIG: "Außerdem grenzt es den Typ der Variablen auf der Grundlage des Ergebnisses der Prüfung ein." +*/ + +{ + type Fish = { swim: () => void }; + type Bird = { fly: () => void }; + + // "pet is Fish" <- Type predicate + const isFish = (pet: Fish | Bird): pet is Fish => { + return Object.hasOwn(pet, 'swim'); + // return pet.hasOwnProperty('swim'); + // return typeof (pet as Fish).swim !== 'undefined'; + + // return 'swim' in pet; // in Operator führt Type-Narrowing durch + }; + + const handlePet = (pet: Fish | Bird) => { + // Property 'swim' does not exist on type 'Fish | Bird'. + // Property 'swim' does not exist on type 'Bird'. + // pet.swim(); + + // if ('swim' in pet) { + if (isFish(pet)) { + pet.swim(); // TypeScript knows pet is a Fish Object + } else { + pet.fly(); // TypeScript knows pet is a Bird Object + } + }; + + const pet: Fish | Bird = { swim: () => console.log('Is swimming') }; + const amsel: Bird = { fly: () => console.log('Is flying') }; + + handlePet(pet); + handlePet(amsel); + + //------ + // const zoo: (Fish | Bird)[] = [ + // { swim: () => console.log('Fish swimming') }, + // { fly: () => console.log('Bird flying') }, + // { swim: () => console.log('Another Fish flying') }, + // ]; + const zoo: Array = [ + { swim: () => console.log('Fish swimming') }, + { fly: () => console.log('Bird flying') }, + { fly: () => console.log('Another Bird flying') }, + { fly: () => console.log('Bird3 flying') }, + { swim: () => console.log('Another Fish flying') }, + ]; + + const fishes = zoo.filter((pet) => isFish(pet)); + + fishes.forEach((fish) => fish.swim()); +}