From 16416a023981a011ec828c240ea5e848a177ec20 Mon Sep 17 00:00:00 2001 From: Philippe Torrel Date: Mon, 19 Oct 2026 14:31:58 +0200 Subject: [PATCH] --- 05_typescript/agenda.md | 4 +- .../uebungen/u12_type-guard/index.html | 45 ++ .../uebungen/u12_type-guard/package.json | 13 + .../uebungen/u12_type-guard/src/main.ts | 19 + .../uebungen/u13_narrowing/index.html | 31 ++ .../uebungen/u13_narrowing/package.json | 13 + .../uebungen/u13_narrowing/src/main.ts | 17 + .../u14_narrowing-equality/index.html | 34 ++ .../u14_narrowing-equality/package.json | 13 + .../u14_narrowing-equality/src/main.ts | 35 ++ .../u15_narrowing-in-operator/index.html | 29 + .../u15_narrowing-in-operator/package.json | 13 + .../u15_narrowing-in-operator/src/main.ts | 14 + .../u16_narrowing-zuweisung/index.html | 44 ++ .../u16_narrowing-zuweisung/package.json | 13 + .../u16_narrowing-zuweisung/src/main.ts | 25 + .../u17_narrowing-kontrollfluss/index.html | 48 ++ .../u17_narrowing-kontrollfluss/package.json | 13 + .../u17_narrowing-kontrollfluss/src/main.ts | 27 + .../uebungen/u18_type-predicates/index.html | 50 ++ .../uebungen/u18_type-predicates/package.json | 13 + .../uebungen/u18_type-predicates/src/main.ts | 30 ++ .../uebungen/u19_fn-typausdruecke/index.html | 50 ++ .../u19_fn-typausdruecke/package.json | 13 + .../uebungen/u19_fn-typausdruecke/src/main.ts | 17 + .../u20_fn-call-signatures/index.html | 62 +++ .../u20_fn-call-signatures/package.json | 13 + .../u20_fn-call-signatures/src/main.ts | 38 ++ .../uebungen/u21_fn-identity/index.html | 53 ++ .../uebungen/u21_fn-identity/package.json | 13 + .../uebungen/u21_fn-identity/src/main.ts | 15 + 05_typescript/uebungen/uebungen-12-21-ts.zip | Bin 0 -> 25399 bytes .../assets/img/what-is-ts.webp | Bin 0 -> 167054 bytes .../assets/js/01_fn-type-expression.js | 43 ++ .../assets/js/02_fn-call-signature.js | 48 ++ .../assets/js/03_fn-generics.js | 35 ++ .../tag31/02_ts-functions/index.html | 25 + .../tag31/02_ts-functions/package-lock.json | 499 ++++++++++++++++++ .../tag31/02_ts-functions/package.json | 14 + .../src/01_fn-type-expression.ts | 83 +++ .../src/02_fn-call-signature.ts | 91 ++++ .../02_ts-functions/src/03_fn-generics.ts | 63 +++ 42 files changed, 1716 insertions(+), 2 deletions(-) create mode 100644 05_typescript/uebungen/u12_type-guard/index.html create mode 100644 05_typescript/uebungen/u12_type-guard/package.json create mode 100644 05_typescript/uebungen/u12_type-guard/src/main.ts create mode 100644 05_typescript/uebungen/u13_narrowing/index.html create mode 100644 05_typescript/uebungen/u13_narrowing/package.json create mode 100644 05_typescript/uebungen/u13_narrowing/src/main.ts create mode 100644 05_typescript/uebungen/u14_narrowing-equality/index.html create mode 100644 05_typescript/uebungen/u14_narrowing-equality/package.json create mode 100644 05_typescript/uebungen/u14_narrowing-equality/src/main.ts create mode 100644 05_typescript/uebungen/u15_narrowing-in-operator/index.html create mode 100644 05_typescript/uebungen/u15_narrowing-in-operator/package.json create mode 100644 05_typescript/uebungen/u15_narrowing-in-operator/src/main.ts create mode 100644 05_typescript/uebungen/u16_narrowing-zuweisung/index.html create mode 100644 05_typescript/uebungen/u16_narrowing-zuweisung/package.json create mode 100644 05_typescript/uebungen/u16_narrowing-zuweisung/src/main.ts create mode 100644 05_typescript/uebungen/u17_narrowing-kontrollfluss/index.html create mode 100644 05_typescript/uebungen/u17_narrowing-kontrollfluss/package.json create mode 100644 05_typescript/uebungen/u17_narrowing-kontrollfluss/src/main.ts create mode 100644 05_typescript/uebungen/u18_type-predicates/index.html create mode 100644 05_typescript/uebungen/u18_type-predicates/package.json create mode 100644 05_typescript/uebungen/u18_type-predicates/src/main.ts create mode 100644 05_typescript/uebungen/u19_fn-typausdruecke/index.html create mode 100644 05_typescript/uebungen/u19_fn-typausdruecke/package.json create mode 100644 05_typescript/uebungen/u19_fn-typausdruecke/src/main.ts create mode 100644 05_typescript/uebungen/u20_fn-call-signatures/index.html create mode 100644 05_typescript/uebungen/u20_fn-call-signatures/package.json create mode 100644 05_typescript/uebungen/u20_fn-call-signatures/src/main.ts create mode 100644 05_typescript/uebungen/u21_fn-identity/index.html create mode 100644 05_typescript/uebungen/u21_fn-identity/package.json create mode 100644 05_typescript/uebungen/u21_fn-identity/src/main.ts create mode 100644 05_typescript/uebungen/uebungen-12-21-ts.zip create mode 100644 05_typescript/unterricht/tag31/02_ts-functions/assets/img/what-is-ts.webp create mode 100644 05_typescript/unterricht/tag31/02_ts-functions/assets/js/01_fn-type-expression.js create mode 100644 05_typescript/unterricht/tag31/02_ts-functions/assets/js/02_fn-call-signature.js create mode 100644 05_typescript/unterricht/tag31/02_ts-functions/assets/js/03_fn-generics.js create mode 100644 05_typescript/unterricht/tag31/02_ts-functions/index.html create mode 100644 05_typescript/unterricht/tag31/02_ts-functions/package-lock.json create mode 100644 05_typescript/unterricht/tag31/02_ts-functions/package.json create mode 100644 05_typescript/unterricht/tag31/02_ts-functions/src/01_fn-type-expression.ts create mode 100644 05_typescript/unterricht/tag31/02_ts-functions/src/02_fn-call-signature.ts create mode 100644 05_typescript/unterricht/tag31/02_ts-functions/src/03_fn-generics.ts diff --git a/05_typescript/agenda.md b/05_typescript/agenda.md index fe2c015..3afe23c 100644 --- a/05_typescript/agenda.md +++ b/05_typescript/agenda.md @@ -517,7 +517,7 @@ Projekt 1: TaskManager **Übungen:** -Übungen 12 - 20 +Übungen 12 - 21 --- @@ -531,7 +531,7 @@ Projekt 1: TaskManager **Übungen:** -Übungen 21 - 31 +Übungen 22 - 31 Projektarbeit --- diff --git a/05_typescript/uebungen/u12_type-guard/index.html b/05_typescript/uebungen/u12_type-guard/index.html new file mode 100644 index 0000000..391d3df --- /dev/null +++ b/05_typescript/uebungen/u12_type-guard/index.html @@ -0,0 +1,45 @@ + + + + + + Übung 12: Implementiere eine Type Guard Funktion + + + + +
+
+
+

Übung 12: Implementiere eine Type Guard Funktion

+

+ Schreibe eine TypeScript-Funktion namens formatInput, die einen Parameter + input akzeptiert, der vom Typ number, string oder + boolean + sein kann. Die Funktion sollte einen formatierten String zurückgeben, der auf dem Typ der Eingabe basiert: +

+
    +
  • + Wenn input eine number ist, gibst du die Zahl multipliziert mit + 100 als string zurück. +
  • +
  • + Wenn input ein string ist, wird + string + in Kleinbuchstaben zurückgegeben. +
  • +
  • + Wenn input eine boolean ist, gib "Yes" zurück, wenn input eine + true ist, und "No", wenn input eine false ist. +
  • +
+

+ Verwende den typeof Operator, um die Typen innerhalb der Funktion einzugrenzen. +
+ Kopiere den Code unten und füge ihn ein, um deine Implementierung zu testen. +

+
+
+
+ + diff --git a/05_typescript/uebungen/u12_type-guard/package.json b/05_typescript/uebungen/u12_type-guard/package.json new file mode 100644 index 0000000..8f779d7 --- /dev/null +++ b/05_typescript/uebungen/u12_type-guard/package.json @@ -0,0 +1,13 @@ +{ + "name": "12_type-guard", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "ts": "npx esbuild src/main.ts --watch --bundle --outfile=assets/js/bundle.js --loader:.ts=ts" + }, + "keywords": [], + "author": "", + "license": "ISC", + "type": "commonjs" +} diff --git a/05_typescript/uebungen/u12_type-guard/src/main.ts b/05_typescript/uebungen/u12_type-guard/src/main.ts new file mode 100644 index 0000000..328b727 --- /dev/null +++ b/05_typescript/uebungen/u12_type-guard/src/main.ts @@ -0,0 +1,19 @@ +console.log(formatInput(0.5)); // => "50" +console.log(formatInput(12)); // => "1200" +console.log(formatInput('Hello')); // => "hello" +console.log(formatInput('WORLD')); // => "world" +console.log(formatInput(true)); // => "Yes" +console.log(formatInput(false)); // => "No" + +// Übung 12: Implementiere eine Type Guard Funktion +// Schreibe eine TypeScript-Funktion namens formatInput, die einen Parameter input akzeptiert, der vom Typ number, string oder boolean sein kann. Die Funktion sollte einen formatierten String zurückgeben, der auf dem Typ der Eingabe basiert: + +// Wenn input eine number ist, gibst du die Zahl multipliziert mit 100 als string zurück. + +// Wenn input ein string ist, wird string in Kleinbuchstaben zurückgegeben. + +// Wenn input eine boolean ist, gib "Yes" zurück, wenn input eine true ist, und "No", wenn input eine false ist. + +// Verwende den typeof Operator, um die Typen innerhalb der Funktion einzugrenzen. + +// Kopiere den Code unten und füge ihn ein, um deine Implementierung zu testen. diff --git a/05_typescript/uebungen/u13_narrowing/index.html b/05_typescript/uebungen/u13_narrowing/index.html new file mode 100644 index 0000000..d53943c --- /dev/null +++ b/05_typescript/uebungen/u13_narrowing/index.html @@ -0,0 +1,31 @@ + + + + + + Übung 13: Implementierung der Truthiness Narrowing in einer Funktion + + + + +
+
+
+

Übung 13: Implementierung der Truthiness Narrowing in einer Funktion

+

+ Schreibe eine TypeScript-Funktion namens displayStatus, die einen Parameter + status akzeptiert, der ein string, null oder + undefined sein kann. Die Funktion sollte: +

+
    +
  • Wenn status truthy ist, wird die Zeichenfolge "Status: ", verkettet mit Status.
  • +
  • + Wenn status fehlerhaft ist, wird die Zeichenfolge "No status available." zurückgegeben. +
  • +
+

Verwende die Truthiness Narrowing, um zu prüfen, ob der Status truthy oder falsch ist.

+
+
+
+ + diff --git a/05_typescript/uebungen/u13_narrowing/package.json b/05_typescript/uebungen/u13_narrowing/package.json new file mode 100644 index 0000000..358b0ee --- /dev/null +++ b/05_typescript/uebungen/u13_narrowing/package.json @@ -0,0 +1,13 @@ +{ + "name": "13_narrowing", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "ts": "npx esbuild src/main.ts --watch --bundle --outfile=assets/js/bundle.js --loader:.ts=ts" + }, + "keywords": [], + "author": "", + "license": "ISC", + "type": "commonjs" +} diff --git a/05_typescript/uebungen/u13_narrowing/src/main.ts b/05_typescript/uebungen/u13_narrowing/src/main.ts new file mode 100644 index 0000000..4b961fb --- /dev/null +++ b/05_typescript/uebungen/u13_narrowing/src/main.ts @@ -0,0 +1,17 @@ +console.log(displayStatus('Active')); // => "Status: Active" +console.log(displayStatus('Pending')); // => "Status: Pending" +console.log(displayStatus(null)); // => "No status available." +console.log(displayStatus(undefined)); // => "No status available." +console.log(displayStatus('')); // => "No status available." + +// Übung 13: Implementierung der Truthiness Narrowing in einer Funktion +// Schreibe eine TypeScript-Funktion namens displayStatus, die einen Parameter status akzeptiert, der ein string, null oder undefined sein kann. Die Funktion sollte: + +// Wenn status truthy ist, wird die Zeichenfolge "Status: ", verkettet mit Status. + +// Wenn status fehlerhaft ist, wird die Zeichenfolge "No status available." zurückgegeben. + +// Verwende die Truthiness Narrowing, um zu prüfen, ob der Status truthy oder falsch ist. + +// Kopiere den Code unten und füge ihn ein, um deine Implementierung zu testen. +// // Kopiere den Code unten und füge ihn ein, um deine Implementierung zu testen. diff --git a/05_typescript/uebungen/u14_narrowing-equality/index.html b/05_typescript/uebungen/u14_narrowing-equality/index.html new file mode 100644 index 0000000..2d4c188 --- /dev/null +++ b/05_typescript/uebungen/u14_narrowing-equality/index.html @@ -0,0 +1,34 @@ + + + + + + Übung 14: Equality Narrowing in einer Funktion implementieren + + + + +
+
+
+

Übung 14: Equality Narrowing in einer Funktion implementieren

+

+ Gegeben ist eine unvollständige Funktion analyzeInput
+ Vervollständige die Funktion analyzeInput so, dass sie zurückgegeben wird: +

+
    +
  • "Input is exactly true" wenn input === true.
  • +
  • "Input is exactly false" wenn input === false.
  • +
  • "Input is zero" wenn input === 0.
  • +
  • "Input is a positive number" wenn input eine Zahl größer als null ist.
  • +
  • "Input is a negative number" wenn input eine Zahl kleiner als null ist.
  • +
  • "Input is the string 'hello'" wenn input === "hello".
  • +
  • "Input is another string" wenn input irgendein anderer String ist.
  • +
  • "Unknown input" andernfalls.
  • +
+

Verwende Equality- und Vergleichsoperatoren, um den Typ und den Wert der Eingabe einzugrenzen.

+
+
+
+ + diff --git a/05_typescript/uebungen/u14_narrowing-equality/package.json b/05_typescript/uebungen/u14_narrowing-equality/package.json new file mode 100644 index 0000000..acce904 --- /dev/null +++ b/05_typescript/uebungen/u14_narrowing-equality/package.json @@ -0,0 +1,13 @@ +{ + "name": "14_narrowing-equality", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "ts": "npx esbuild src/main.ts --watch --bundle --outfile=assets/js/bundle.js --loader:.ts=ts" + }, + "keywords": [], + "author": "", + "license": "ISC", + "type": "commonjs" +} diff --git a/05_typescript/uebungen/u14_narrowing-equality/src/main.ts b/05_typescript/uebungen/u14_narrowing-equality/src/main.ts new file mode 100644 index 0000000..caeee4d --- /dev/null +++ b/05_typescript/uebungen/u14_narrowing-equality/src/main.ts @@ -0,0 +1,35 @@ +const analyzeInput = (input: string | number | boolean): string => { + // Your code here +}; + +console.log(analyzeInput(true)); // => "Input is exactly true" +console.log(analyzeInput(false)); // => "Input is exactly false" +console.log(analyzeInput(0)); // => "Input is zero" +console.log(analyzeInput(42)); // => "Input is a positive number" +console.log(analyzeInput(-7)); // => "Input is a negative number" +console.log(analyzeInput('hello')); // => "Input is the string 'hello'" +console.log(analyzeInput('world')); // => "Input is another string" +console.log(analyzeInput('')); // => "Input is another string" +console.log(analyzeInput(undefined)); // => "Unknown input" +console.log(analyzeInput(null)); // => "Unknown input" + +// Übung 14: Equality Narrowing in einer Funktion implementieren +// Vervollständige die Funktion analyzeInput so, dass sie zurückgegeben wird: + +// "Input is exactly true" wenn input === true. + +// "Input is exactly false" wenn input === false. + +// "Input is zero" wenn input === 0. + +// "Input is a positive number" wenn input eine Zahl größer als null ist. + +// "Input is a negative number" wenn input eine Zahl kleiner als null ist. + +// "Input is the string 'hello'" wenn input === "hello". + +// "Input is another string" wenn input irgendein anderer String ist. + +// "Unknown input" andernfalls. + +// Verwende Equality- und Vergleichsoperatoren, um den Typ und den Wert der Eingabe einzugrenzen. diff --git a/05_typescript/uebungen/u15_narrowing-in-operator/index.html b/05_typescript/uebungen/u15_narrowing-in-operator/index.html new file mode 100644 index 0000000..88d9baf --- /dev/null +++ b/05_typescript/uebungen/u15_narrowing-in-operator/index.html @@ -0,0 +1,29 @@ + + + + + + Übung 15: Verwendung des in-Operators zur Type Narrowing in TypeScript + + + + +
+
+
+

Übung 15: Verwendung des in-Operators zur Type Narrowing in TypeScript

+

+ Erstelle eine TypeScript-Funktion mit dem Namen play, die einen Parameter vom Typ + Guitar | Piano annimmt. Der Typ Guitar hat eine Methode strum, und + der Typ Piano hat eine Methode pressKeys. +

+

+ In der Funktion play verwendest du den Operator in, um festzustellen, ob das + übergebene instrument ein Guitar oder ein Piano ist, und rufst dann die + entsprechende Methode auf. Achte darauf, dass deine Funktion beide Typen richtig behandelt. +

+
+
+
+ + diff --git a/05_typescript/uebungen/u15_narrowing-in-operator/package.json b/05_typescript/uebungen/u15_narrowing-in-operator/package.json new file mode 100644 index 0000000..cf35cf9 --- /dev/null +++ b/05_typescript/uebungen/u15_narrowing-in-operator/package.json @@ -0,0 +1,13 @@ +{ + "name": "15_narrowing-in-operator", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "ts": "npx esbuild src/main.ts --watch --bundle --outfile=assets/js/bundle.js --loader:.ts=ts" + }, + "keywords": [], + "author": "", + "license": "ISC", + "type": "commonjs" +} diff --git a/05_typescript/uebungen/u15_narrowing-in-operator/src/main.ts b/05_typescript/uebungen/u15_narrowing-in-operator/src/main.ts new file mode 100644 index 0000000..9bdb347 --- /dev/null +++ b/05_typescript/uebungen/u15_narrowing-in-operator/src/main.ts @@ -0,0 +1,14 @@ +type Guitar = { strum: () => void }; +type Piano = { pressKeys: () => void }; + +const play = (instrument: Guitar | Piano) => { + // Your code here +}; + +// Create guitar instance + +// Create piano instance + +// Call functions +play(guitar); // => "Strumming the guitar!" +play(piano); // => "Pressing piano keys!" diff --git a/05_typescript/uebungen/u16_narrowing-zuweisung/index.html b/05_typescript/uebungen/u16_narrowing-zuweisung/index.html new file mode 100644 index 0000000..9bfa0ee --- /dev/null +++ b/05_typescript/uebungen/u16_narrowing-zuweisung/index.html @@ -0,0 +1,44 @@ + + + + + + Übung 16: Type Narrowing mit Zuweisungsoperationen + + + + +
+
+
+

Übung 16: Type Narrowing mit Zuweisungsoperationen

+

+ In dieser Übung arbeitest du mit TypeScripts Features zur Type Narrowing durch Zuweisungsoperationen. Du + definierst eine Variable mit einem Union Type (string | number | boolean) und demonstrierst, + wie TypeScript den Typ dynamisch auf Basis der zugewiesenen Werte einschränkt. +

+

+ Du wirst auch eine Funktion implementieren, die einen Union Type Parameter akzeptiert und diesen korrekt + behandelt, indem du die TypeScript-Funktionen fürs Type Narrowing nutzt. +

+

Anweisungen:

+
    +
  1. + Schreibe eine Funktion handleValue, die einen string | number | boolean Parameter annimmt und + je nach Typ des Arguments ein anderes Verhalten protokolliert. +
      +
    • Wenn es eine string ist, protokolliere die Version in Großbuchstaben.
    • +
    • Wenn es sich um eine number handelt, logge ihren Wert multipliziert mit 2.
    • +
    • + Wenn es eine boolean ist, protokolliere "It's true!" oder "It's false!". Verwende einen + ternären Operator. +
    • +
    +
  2. +
  3. Teste die Funktion mit verschiedenen Eingaben.
  4. +
+
+
+
+ + diff --git a/05_typescript/uebungen/u16_narrowing-zuweisung/package.json b/05_typescript/uebungen/u16_narrowing-zuweisung/package.json new file mode 100644 index 0000000..c8b8c36 --- /dev/null +++ b/05_typescript/uebungen/u16_narrowing-zuweisung/package.json @@ -0,0 +1,13 @@ +{ + "name": "16_narrowing-zuweisung", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "ts": "npx esbuild src/main.ts --watch --bundle --outfile=assets/js/bundle.js --loader:.ts=ts" + }, + "keywords": [], + "author": "", + "license": "ISC", + "type": "commonjs" +} diff --git a/05_typescript/uebungen/u16_narrowing-zuweisung/src/main.ts b/05_typescript/uebungen/u16_narrowing-zuweisung/src/main.ts new file mode 100644 index 0000000..3c73e04 --- /dev/null +++ b/05_typescript/uebungen/u16_narrowing-zuweisung/src/main.ts @@ -0,0 +1,25 @@ +// Test handleValue with different inputs +handleValue('hello'); // => "HELLO" +handleValue('TypeScript'); // => "TYPESCRIPT" +handleValue(21); // => 42 +handleValue(50); // => 100 +handleValue(false); // => "It's false!" +handleValue(true); // => "It's true!" + +// Übung 16: Type Narrowing mit Zuweisungsoperationen + +// In dieser Übung arbeitest du mit TypeScripts Features zur Type Narrowing durch Zuweisungsoperationen. Du definierst eine Variable mit einem Union Type (string | number | boolean) und demonstrierst, wie TypeScript den Typ dynamisch auf Basis der zugewiesenen Werte einschränkt. + +// Du wirst auch eine Funktion implementieren, die einen Union Type Parameter akzeptiert und diesen korrekt behandelt, indem du die TypeScript-Funktionen fürs Type Narrowing nutzt. + +// Anweisungen: + +// 1Schreibe eine Funktion handleValue, die einen string | number | boolean Parameter annimmt und je nach Typ des Arguments ein anderes Verhalten protokolliert. + +// Wenn es eine string ist, protokolliere die Version in Großbuchstaben. + +// Wenn es sich um eine number handelt, logge ihren Wert multipliziert mit 2. + +// Wenn es eine boolean ist, protokolliere "It's true!" oder "It's false!". Verwende einen ternären Operator. + +// 2Teste die Funktion mit verschiedenen Eingaben. diff --git a/05_typescript/uebungen/u17_narrowing-kontrollfluss/index.html b/05_typescript/uebungen/u17_narrowing-kontrollfluss/index.html new file mode 100644 index 0000000..b460257 --- /dev/null +++ b/05_typescript/uebungen/u17_narrowing-kontrollfluss/index.html @@ -0,0 +1,48 @@ + + + + + + Übung 17: Kontrollflussanalyse und Type Narrowing + + + + +
+
+
+

Übung 17: Kontrollflussanalyse und Type Narrowing

+

+ In dieser Übung erstellst du eine Funktion, die einen Union Type Parameter akzeptiert und demonstriert, wie + TypeScript automatisch eine Type Narrowing basierend auf dem Kontrollfluss durchführt. +

+

+ Du wirst Bedingungen implementieren, um verschiedene Typen zu behandeln und je nach Typ der Eingabe + unterschiedliche Ergebnisse zurückzugeben. Ziel ist es, die Verwendung der TypeScript Kontrollflussanalyse + zu üben, um Typsicherheit ohne unnötiges Type-Checking zu gewährleisten. +

+

Anweisungen:

+
    +
  1. + Erstelle eine Funktion handleInput, die einen Parameter vom Typ string | number | boolean | null + akzeptiert. +
  2. +
  3. + Verwende innerhalb der Funktion die Blöcke if, else if und else, um verschiedene Typen zu behandeln: +
      +
    • Wenn die input null ist, gibst du "No value provided" zurück.
    • +
    • Wenn die input eine boolean ist, wird "True" oder "False" zurückgegeben.
    • +
    • Wenn input eine string ist, wird die Großbuchstabenversion der Zeichenkette zurückgegeben.
    • +
    • Wenn input eine number ist, wird das Quadrat der Zahl zurückgegeben.
    • +
    +
  4. +
  5. + Teste die Funktion mit verschiedenen Eingaben, um zu überprüfen, ob TypeScript die Typen korrekt + eingrenzt. +
  6. +
+
+
+
+ + diff --git a/05_typescript/uebungen/u17_narrowing-kontrollfluss/package.json b/05_typescript/uebungen/u17_narrowing-kontrollfluss/package.json new file mode 100644 index 0000000..6afb9ca --- /dev/null +++ b/05_typescript/uebungen/u17_narrowing-kontrollfluss/package.json @@ -0,0 +1,13 @@ +{ + "name": "17_narrowing-kontrollfluss", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "ts": "npx esbuild src/main.ts --watch --bundle --outfile=assets/js/bundle.js --loader:.ts=ts" + }, + "keywords": [], + "author": "", + "license": "ISC", + "type": "commonjs" +} diff --git a/05_typescript/uebungen/u17_narrowing-kontrollfluss/src/main.ts b/05_typescript/uebungen/u17_narrowing-kontrollfluss/src/main.ts new file mode 100644 index 0000000..9daf82d --- /dev/null +++ b/05_typescript/uebungen/u17_narrowing-kontrollfluss/src/main.ts @@ -0,0 +1,27 @@ +// Test cases +console.log(handleInput(null)); // => "No value provided" +console.log(handleInput(true)); // => "True" +console.log(handleInput('hello')); // => "HELLO" +console.log(handleInput(5)); // => 25 + +// Übung 17: Kontrollflussanalyse und Type Narrowing + +// In dieser Übung erstellst du eine Funktion, die einen Union Type Parameter akzeptiert und demonstriert, wie TypeScript automatisch eine Type Narrowing basierend auf dem Kontrollfluss durchführt. + +// Du wirst Bedingungen implementieren, um verschiedene Typen zu behandeln und je nach Typ der Eingabe unterschiedliche Ergebnisse zurückzugeben. Ziel ist es, die Verwendung der TypeScript Kontrollflussanalyse zu üben, um Typsicherheit ohne unnötiges Type-Checking zu gewährleisten. + +// Anweisungen: + +// 1 Erstelle eine Funktion handleInput, die einen Parameter vom Typ string | number | boolean | null akzeptiert. + +// 2 Verwende innerhalb der Funktion die Blöcke if, else if und else, um verschiedene Typen zu behandeln: + +// Wenn die input null ist, gibst du "No value provided" zurück. + +// Wenn die input eine boolean ist, wird "True" oder "False" zurückgegeben. + +// Wenn input eine string ist, wird die Großbuchstabenversion der Zeichenkette zurückgegeben. + +// Wenn input eine number ist, wird das Quadrat der Zahl zurückgegeben. + +// 3 Teste die Funktion mit verschiedenen Eingaben, um zu überprüfen, ob TypeScript die Typen korrekt eingrenzt. diff --git a/05_typescript/uebungen/u18_type-predicates/index.html b/05_typescript/uebungen/u18_type-predicates/index.html new file mode 100644 index 0000000..6da5be5 --- /dev/null +++ b/05_typescript/uebungen/u18_type-predicates/index.html @@ -0,0 +1,50 @@ + + + + + + Übung 18: Type Predicates implementieren + + + + +
+
+
+

Übung 18: Type Predicates implementieren

+

+ In dieser Aufgabe definierst du zwei verschiedene Typen und implementierst eine benutzerdefinierte Predicate + Function, um zwischen ihnen zu unterscheiden. Dann benutzt du diese Funktion, um verschiedene Objekte in + einem Array zu filtern und zu behandeln. +

+ +

Anweisungen:

+
    +
  1. + Definiere zwei Typen, Car und Truck, wobei: +
      +
    • Car hat eine Methode drive().
    • +
    • Truck hat eine Methode loadCargo().
    • +
    +
  2. +
  3. + Erstelle eine Type Predicate Funktion isCar, um zu prüfen, ob ein bestimmtes Fahrzeug ein Car ist und eine + Fahrfunktion hat. Hinweis: .drive !== undefined. +
  4. +
  5. + Implementiere eine Funktion handleVehicle, die einen Parameter vom Typ Car | Truck akzeptiert: +
      +
    • Wenn das Fahrzeug ein Car ist, rufe drive() an.
    • +
    • Wenn das Fahrzeug ein Truck ist, rufe loadCargo() an.
    • +
    +
  6. +
  7. + Erstelle ein Array von Car | Truck Objekten und filtere nur die Autos mit dem isCar Predicate heraus. +
  8. +
  9. Teste deine Funktionen mit verschiedenen Eingaben.
  10. +
+
+
+
+ + diff --git a/05_typescript/uebungen/u18_type-predicates/package.json b/05_typescript/uebungen/u18_type-predicates/package.json new file mode 100644 index 0000000..3f4439a --- /dev/null +++ b/05_typescript/uebungen/u18_type-predicates/package.json @@ -0,0 +1,13 @@ +{ + "name": "18_type-predicates", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "ts": "npx esbuild src/main.ts --watch --bundle --outfile=assets/js/bundle.js --loader:.ts=ts" + }, + "keywords": [], + "author": "", + "license": "ISC", + "type": "commonjs" +} diff --git a/05_typescript/uebungen/u18_type-predicates/src/main.ts b/05_typescript/uebungen/u18_type-predicates/src/main.ts new file mode 100644 index 0000000..2c090f3 --- /dev/null +++ b/05_typescript/uebungen/u18_type-predicates/src/main.ts @@ -0,0 +1,30 @@ +// Test the filtered array +const cars = vehicles.filter(isCar); +cars.forEach((car) => car.drive()); // => "Car driving" + +// Test handleVehicle with both Car and Truck +handleVehicle({ drive: () => console.log('Car driving') }); // => "Car driving" +handleVehicle({ loadCargo: () => console.log('Truck loading cargo') }); // => "Truck loading cargo" + +// Übung 18: Type Predicates implementieren +// In dieser Aufgabe definierst du zwei verschiedene Typen und implementierst eine benutzerdefinierte Predicate Function, um zwischen ihnen zu unterscheiden. Dann benutzt du diese Funktion, um verschiedene Objekte in einem Array zu filtern und zu behandeln. + +// Anweisungen: + +// 1 Definiere zwei Typen, Car und Truck, wobei: + +// Car hat eine Methode drive(). + +// Truck hat eine Methode loadCargo(). + +// 2 Erstelle eine Type Predicate Funktion isCar, um zu prüfen, ob ein bestimmtes Fahrzeug ein Car ist und eine Fahrfunktion hat. Hinweis: .drive !== undefined. + +// 3 Implementiere eine Funktion handleVehicle, die einen Parameter vom Typ Car | Truck akzeptiert: + +// Wenn das Fahrzeug ein Car ist, rufe drive() an. + +// Wenn das Fahrzeug ein Truck ist, rufe loadCargo() an. + +// 4 Erstelle ein Array von Car | Truck Objekten und filtere nur die Autos mit dem isCar Predicate heraus. + +// 5 Teste deine Funktionen mit verschiedenen Eingaben. diff --git a/05_typescript/uebungen/u19_fn-typausdruecke/index.html b/05_typescript/uebungen/u19_fn-typausdruecke/index.html new file mode 100644 index 0000000..8651fa1 --- /dev/null +++ b/05_typescript/uebungen/u19_fn-typausdruecke/index.html @@ -0,0 +1,50 @@ + + + + + + Übung 19: Arbeiten mit Function Type Expressions + + + + +
+
+
+

Übung 19: Arbeiten mit Function Type Expressions

+

+ In dieser Aufgabe schreibst du eine Funktion, die andere Funktionen + als Parameter akzeptiert und Logik basierend auf diesen Function + Type Expressions implementiert. +

+ +

Anweisungen:

+
    +
  1. + Definiere einen Type Alias MathOperation für eine + Funktion, die zwei numbers als Parameter nimmt und + einen number zurückgibt. +
  2. +
  3. + Implementiere eine Funktion calculate, die eine + Funktion vom Typ MathOperation und zwei + numbers + annimmt und die Funktion auf die Zahlen anwendet. +
  4. +
  5. + Erstelle zwei neue Funktionen, add und + multiply, die der Signatur + MathOperation entsprechen. +
  6. +
  7. + Teste alle Funktionen, indem du geeignete Argumente übergibst und + die Ergebnisse protokollierst. +
  8. +
+
+
+
+ + diff --git a/05_typescript/uebungen/u19_fn-typausdruecke/package.json b/05_typescript/uebungen/u19_fn-typausdruecke/package.json new file mode 100644 index 0000000..ac050ae --- /dev/null +++ b/05_typescript/uebungen/u19_fn-typausdruecke/package.json @@ -0,0 +1,13 @@ +{ + "name": "19_fn-typausdruecke", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "ts": "npx esbuild src/main.ts --watch --bundle --outfile=assets/js/bundle.js --loader:.ts=ts" + }, + "keywords": [], + "author": "", + "license": "ISC", + "type": "commonjs" +} diff --git a/05_typescript/uebungen/u19_fn-typausdruecke/src/main.ts b/05_typescript/uebungen/u19_fn-typausdruecke/src/main.ts new file mode 100644 index 0000000..1f02bac --- /dev/null +++ b/05_typescript/uebungen/u19_fn-typausdruecke/src/main.ts @@ -0,0 +1,17 @@ +// Test cases +console.log(calculate(add, 10, 5)); // => 15 +console.log(calculate(multiply, 10, 5)); // => 50 + +// Übung 19: Arbeiten mit Function Type Expressions + +// In dieser Aufgabe schreibst du eine Funktion, die andere Funktionen als Parameter akzeptiert und Logik basierend auf diesen Function Type Expressions implementiert. + +// Anweisungen: + +// 1 Definiere einen Type Alias MathOperation für eine Funktion, die zwei numbers als Parameter nimmt und einen number zurückgibt. + +// 2 Implementiere eine Funktion calculate, die eine Funktion vom Typ MathOperation und zwei numbers annimmt und die Funktion auf die Zahlen anwendet. + +// 3 Erstelle zwei neue Funktionen, add und multiply, die der Signatur MathOperation entsprechen. + +// 4 Teste alle Funktionen, indem du geeignete Argumente übergibst und die Ergebnisse protokollierst. diff --git a/05_typescript/uebungen/u20_fn-call-signatures/index.html b/05_typescript/uebungen/u20_fn-call-signatures/index.html new file mode 100644 index 0000000..a515ef4 --- /dev/null +++ b/05_typescript/uebungen/u20_fn-call-signatures/index.html @@ -0,0 +1,62 @@ + + + + + + Übung 20: Call Signatures für Zahlenoperationen + + + + +
+
+
+

Übung 20: Call Signatures für Zahlenoperationen

+

+ In dieser Übung erstellst und verwendest du ein paar einfache + Funktionen, die sich an bestimmte Call Signatures für die Arbeit mit + Zahlen halten. +

+ +

Anweisungen:

+
    +
  1. + Definiere eine Funktion vom Typ + NumberOperation, die ein einzelnes + number annimmt und ein + number zurückgibt. +
  2. +
  3. + Implementiere zwei Funktionen, + double und halve, die der Call Signature + NumberOperation folgen: + +
      +
    • + double: Multipliziert die eingegebene Zahl mit 2. +
    • +
    • halve: Teilt die eingegebene Zahl durch 2.
    • +
    +
  4. +
  5. + Definiere einen Objekttyp + DescribableNumberOperation mit einer + description-Property vom Typ string und einer Cal + Signature, die NumberOperation entspricht. +
  6. +
  7. + Implementiere eine Funktion + describeAndApply, die ein + DescribableNumberOperation + Objekt annimmt, dessen description protokolliert und + die Operation auf eine bestimmte Zahl anwendet. +
  8. +
  9. Teste alle Funktionen mit ein paar Zahlen.
  10. +
+
+
+
+ + diff --git a/05_typescript/uebungen/u20_fn-call-signatures/package.json b/05_typescript/uebungen/u20_fn-call-signatures/package.json new file mode 100644 index 0000000..61f867a --- /dev/null +++ b/05_typescript/uebungen/u20_fn-call-signatures/package.json @@ -0,0 +1,13 @@ +{ + "name": "20_fn-call-signatures", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "ts": "npx esbuild src/main.ts --watch --bundle --outfile=assets/js/bundle.js --loader:.ts=ts" + }, + "keywords": [], + "author": "", + "license": "ISC", + "type": "commonjs" +} diff --git a/05_typescript/uebungen/u20_fn-call-signatures/src/main.ts b/05_typescript/uebungen/u20_fn-call-signatures/src/main.ts new file mode 100644 index 0000000..618142b --- /dev/null +++ b/05_typescript/uebungen/u20_fn-call-signatures/src/main.ts @@ -0,0 +1,38 @@ +// Step 1: Define the NumberOperation call signature + +// Step 2: Implement double and halve functions + +// Step 3: Define the DescribableNumberOperation type + +// Step 4: Implement describeAndApply function + +// Test all functions +const describableDouble: DescribableNumberOperation = Object.assign(double, { + description: 'This operation doubles the number.', +}); + +const describableHalve: DescribableNumberOperation = Object.assign(halve, { + description: 'This operation halves the number.', +}); + +console.log(describeAndApply(describableDouble, 10)); // => 20 +console.log(describeAndApply(describableHalve, 10)); // => 5 + +// Übung 20: Call Signatures für Zahlenoperationen + +// In dieser Übung erstellst und verwendest du ein paar einfache Funktionen, die sich an bestimmte Call Signatures für die Arbeit mit Zahlen halten. + +// Anweisungen: + +// 1 Definiere eine Funktion vom Typ NumberOperation, die ein einzelnes number annimmt und ein number zurückgibt. + +// 2 Implementiere zwei Funktionen, double und halve, die der Call Signature NumberOperation folgen: + +// double: Multipliziert die eingegebene Zahl mit 2. +// halve: Teilt die eingegebene Zahl durch 2. + +// 3 Definiere einen Objekttyp DescribableNumberOperation mit einer description-Property vom Typ string und einer Cal Signature, die NumberOperation entspricht. + +// 4 Implementiere eine Funktion describeAndApply, die ein DescribableNumberOperation Objekt annimmt, dessen description protokolliert und die Operation auf eine bestimmte Zahl anwendet. + +// 5 Teste alle Funktionen mit ein paar Zahlen. diff --git a/05_typescript/uebungen/u21_fn-identity/index.html b/05_typescript/uebungen/u21_fn-identity/index.html new file mode 100644 index 0000000..3720296 --- /dev/null +++ b/05_typescript/uebungen/u21_fn-identity/index.html @@ -0,0 +1,53 @@ + + + + + + Übung 21: Eine allgemeine Identitätsfunktion erstellen + + + + +
+
+
+

Übung 21: Eine allgemeine Identitätsfunktion erstellen

+

+ In dieser Übung erstellst du eine einfache generische Funktion + namens identity, die den ihr übergebenen Wert + zurückgibt. So lernst du, wie generische Funktionen mit + verschiedenen Typen arbeiten können, ohne die Typsicherheit zu + verlieren. +

+ +

Anweisungen:

+
    +
  1. + Implementiere eine generische identity Funktion, die + einen Parameter vom Typ T annimmt und denselben Wert + zurückgibt. +
  2. +
  3. + Rufe identity mit einer number auf und + speichere das Ergebnis. +
  4. +
  5. + Rufe identity mit einer string auf und + speichere das Ergebnis. +
  6. +
  7. + Rufe identity mit einem Array von Objekten auf und + speichere das Ergebnis. +
  8. +
  9. + Stelle sicher, dass TypeScript die Rückgabetypen ohne explicit + Type Annotations korrekt herleitet. +
  10. +
+
+
+
+ + diff --git a/05_typescript/uebungen/u21_fn-identity/package.json b/05_typescript/uebungen/u21_fn-identity/package.json new file mode 100644 index 0000000..8427e8d --- /dev/null +++ b/05_typescript/uebungen/u21_fn-identity/package.json @@ -0,0 +1,13 @@ +{ + "name": "21_fn-identity", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "ts": "npx esbuild src/main.ts --watch --bundle --outfile=assets/js/bundle.js --loader:.ts=ts" + }, + "keywords": [], + "author": "", + "license": "ISC", + "type": "commonjs" +} diff --git a/05_typescript/uebungen/u21_fn-identity/src/main.ts b/05_typescript/uebungen/u21_fn-identity/src/main.ts new file mode 100644 index 0000000..121ac97 --- /dev/null +++ b/05_typescript/uebungen/u21_fn-identity/src/main.ts @@ -0,0 +1,15 @@ +// Übung 21: Eine allgemeine Identitätsfunktion erstellen + +// In dieser Übung erstellst du eine einfache generische Funktion namens identity, die den ihr übergebenen Wert zurückgibt. So lernst du, wie generische Funktionen mit verschiedenen Typen arbeiten können, ohne die Typsicherheit zu verlieren. + +// Anweisungen: + +// 1 Implementiere eine generische identity Funktion, die einen Parameter vom Typ T annimmt und denselben Wert zurückgibt. + +// 2 Rufe identity mit einer number auf und speichere das Ergebnis. + +// 3 Rufe identity mit einer string auf und speichere das Ergebnis. + +// 4 Rufe identity mit einem Array von Objekten auf und speichere das Ergebnis. + +// 5 Stelle sicher, dass TypeScript die Rückgabetypen ohne explicit Type Annotations korrekt herleitet. diff --git a/05_typescript/uebungen/uebungen-12-21-ts.zip b/05_typescript/uebungen/uebungen-12-21-ts.zip new file mode 100644 index 0000000000000000000000000000000000000000..a56910f5ae48e146c9a03a48058fb646dbe22b38 GIT binary patch literal 25399 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 KX3GNq_5T4gI}{H9 literal 0 HcmV?d00001 diff --git a/05_typescript/unterricht/tag31/02_ts-functions/assets/img/what-is-ts.webp b/05_typescript/unterricht/tag31/02_ts-functions/assets/img/what-is-ts.webp new file mode 100644 index 0000000000000000000000000000000000000000..d329dbb7b3ef84c9e12bbf5286bbaba741f38893 GIT binary patch literal 167054 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�`Q*Fy6|7n?Nd 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 literal 0 HcmV?d00001 diff --git a/05_typescript/unterricht/tag31/02_ts-functions/assets/js/01_fn-type-expression.js b/05_typescript/unterricht/tag31/02_ts-functions/assets/js/01_fn-type-expression.js new file mode 100644 index 0000000..f8265a9 --- /dev/null +++ b/05_typescript/unterricht/tag31/02_ts-functions/assets/js/01_fn-type-expression.js @@ -0,0 +1,43 @@ +(() => { + // src/01_fn-type-expression.ts + { + let mathOperationFn = function(fn) { + return fn(4, 5); + }, multiplyFn = function(a, b) { + return a * b; + }, printToConsole = function(s) { + console.log(s); + }, mathOperation = function(fn) { + return fn(10, 20); + }; + const multiply = (a, b) => { + return a * b; + }; + const multiply2 = (a, b) => { + return a * b; + }; + console.log(multiply(2, 4)); + console.log(multiply2(2, 4)); + mathOperationFn(multiplyFn); + const greeter = (fn) => { + fn("Hello, World"); + }; + const greeter2 = (fn) => { + fn("Hello, World"); + }; + greeter(printToConsole); + greeter2(printToConsole); + const logMessage = (message) => { + console.log(message); + }; + const logMsg = (message) => { + console.log(message); + }; + logMessage("Hello World"); + logMsg("Hello World"); + const subtract = (x, y) => { + return x - y; + }; + console.log(mathOperation(subtract)); + } +})(); diff --git a/05_typescript/unterricht/tag31/02_ts-functions/assets/js/02_fn-call-signature.js b/05_typescript/unterricht/tag31/02_ts-functions/assets/js/02_fn-call-signature.js new file mode 100644 index 0000000..0d4b14a --- /dev/null +++ b/05_typescript/unterricht/tag31/02_ts-functions/assets/js/02_fn-call-signature.js @@ -0,0 +1,48 @@ +(() => { + // src/02_fn-call-signature.ts + { + const sum = (a, b) => { + return `The sum is ${a + b}`; + }; + const sum2 = (a, b) => { + return `The sum is ${a + b}`; + }; + console.log(sum(40, 2)); + console.log(sum2(60, 7)); + const sum3 = (a = { a: 1, b: 2 }, b = 2) => { + return `The sum is ${a.a + b}`; + }; + const add = (x, y) => { + return x + y; + }; + const multiply = (x, y) => { + return x * y; + }; + console.log(add(123, 321)); + console.log(multiply(25, 25)); + const person = { + name: "John", + age: 23, + walk() { + return "i'm walking."; + }, + run(n) { + return `i'm running very fast (${n?.toFixed(1)}km/h).`; + } + }; + console.log(person.walk()); + console.log(person.run(100)); + } + console.log("--- Describable Function ---"); + { + let doSomething = function(fn, n = 6) { + console.log(fn.description + " returned " + fn(n)); + }; + const myFunc = (someArg) => { + return someArg > 3; + }; + myFunc.description = "Default description"; + doSomething(myFunc); + doSomething(myFunc, 2); + } +})(); diff --git a/05_typescript/unterricht/tag31/02_ts-functions/assets/js/03_fn-generics.js b/05_typescript/unterricht/tag31/02_ts-functions/assets/js/03_fn-generics.js new file mode 100644 index 0000000..121ee3f --- /dev/null +++ b/05_typescript/unterricht/tag31/02_ts-functions/assets/js/03_fn-generics.js @@ -0,0 +1,35 @@ +(() => { + // src/03_fn-generics.ts + { + const identityNumber = (arg) => { + return arg; + }; + const identityString = (arg) => { + return arg; + }; + const identity = (arg) => { + return arg; + }; + let resultNumber = identity(42); + let resultString = identity("Hello TypeScript"); + let resultStr = identity("Hello TypeScript"); + let resultBoolean = identity(true); + console.log(resultNumber, resultString, resultStr, resultBoolean); + const firstElement = (arr) => { + return arr[0]; + }; + console.log(firstElement(["Stefan", "Christian", "Florian", "Benjamin"])); + console.log(firstElement([23, 19, 5, 42, 2, 45])); + console.log( + firstElement([ + { firstName: "John", age: 27 }, + { firstName: "JAne", age: 18 } + ]) + ); + console.log(firstElement([])); + let inferredResult = identity("Hello"); + let explicitResult = identity(42); + console.log(inferredResult); + console.log(explicitResult); + } +})(); diff --git a/05_typescript/unterricht/tag31/02_ts-functions/index.html b/05_typescript/unterricht/tag31/02_ts-functions/index.html new file mode 100644 index 0000000..55c478f --- /dev/null +++ b/05_typescript/unterricht/tag31/02_ts-functions/index.html @@ -0,0 +1,25 @@ + + + + + + TypeScript - Grundlagen + + + + + + +
+
+

TypeScript - Grundlagen

+

+ TypeScript ist eine von Microsoft entwickelte Skriptsprache, die auf den Vorschlägen zum ECMAScript-6-Standard + basiert und statische Typisierung zu JavaScript hinzufügt. Sprachkonstrukte von TypeScript, wie Klassen, + Vererbung, Module und anonyme Funktionen, wurden auch in ECMAScript 6 übernommen. +

+ TypeScript Kreisdiagramm +
+
+ + diff --git a/05_typescript/unterricht/tag31/02_ts-functions/package-lock.json b/05_typescript/unterricht/tag31/02_ts-functions/package-lock.json new file mode 100644 index 0000000..93e05a3 --- /dev/null +++ b/05_typescript/unterricht/tag31/02_ts-functions/package-lock.json @@ -0,0 +1,499 @@ +{ + "name": "01_ts-types", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "01_ts-types", + "version": "1.0.0", + "devDependencies": { + "esbuild": "^0.28.2" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.2.tgz", + "integrity": "sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.2.tgz", + "integrity": "sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.2.tgz", + "integrity": "sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.2.tgz", + "integrity": "sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.2.tgz", + "integrity": "sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.2.tgz", + "integrity": "sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.2.tgz", + "integrity": "sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.2.tgz", + "integrity": "sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.2.tgz", + "integrity": "sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.2.tgz", + "integrity": "sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.2.tgz", + "integrity": "sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.2.tgz", + "integrity": "sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.2.tgz", + "integrity": "sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.2.tgz", + "integrity": "sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.2.tgz", + "integrity": "sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.2.tgz", + "integrity": "sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.2.tgz", + "integrity": "sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.2.tgz", + "integrity": "sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.2.tgz", + "integrity": "sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.2.tgz", + "integrity": "sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.2.tgz", + "integrity": "sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.2.tgz", + "integrity": "sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.2.tgz", + "integrity": "sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.2.tgz", + "integrity": "sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.2.tgz", + "integrity": "sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.2.tgz", + "integrity": "sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/esbuild": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.2.tgz", + "integrity": "sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.2", + "@esbuild/android-arm": "0.28.2", + "@esbuild/android-arm64": "0.28.2", + "@esbuild/android-x64": "0.28.2", + "@esbuild/darwin-arm64": "0.28.2", + "@esbuild/darwin-x64": "0.28.2", + "@esbuild/freebsd-arm64": "0.28.2", + "@esbuild/freebsd-x64": "0.28.2", + "@esbuild/linux-arm": "0.28.2", + "@esbuild/linux-arm64": "0.28.2", + "@esbuild/linux-ia32": "0.28.2", + "@esbuild/linux-loong64": "0.28.2", + "@esbuild/linux-mips64el": "0.28.2", + "@esbuild/linux-ppc64": "0.28.2", + "@esbuild/linux-riscv64": "0.28.2", + "@esbuild/linux-s390x": "0.28.2", + "@esbuild/linux-x64": "0.28.2", + "@esbuild/netbsd-arm64": "0.28.2", + "@esbuild/netbsd-x64": "0.28.2", + "@esbuild/openbsd-arm64": "0.28.2", + "@esbuild/openbsd-x64": "0.28.2", + "@esbuild/openharmony-arm64": "0.28.2", + "@esbuild/sunos-x64": "0.28.2", + "@esbuild/win32-arm64": "0.28.2", + "@esbuild/win32-ia32": "0.28.2", + "@esbuild/win32-x64": "0.28.2" + } + } + } +} diff --git a/05_typescript/unterricht/tag31/02_ts-functions/package.json b/05_typescript/unterricht/tag31/02_ts-functions/package.json new file mode 100644 index 0000000..86b8c23 --- /dev/null +++ b/05_typescript/unterricht/tag31/02_ts-functions/package.json @@ -0,0 +1,14 @@ +{ + "name": "02_ts-functions", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "ts": "npx esbuild \"src/*.ts\" --watch --bundle --outdir=\"assets/js\" --loader:.ts=ts" + }, + "keywords": [], + "type": "module", + "devDependencies": { + "esbuild": "^0.28.2" + } +} diff --git a/05_typescript/unterricht/tag31/02_ts-functions/src/01_fn-type-expression.ts b/05_typescript/unterricht/tag31/02_ts-functions/src/01_fn-type-expression.ts new file mode 100644 index 0000000..b9328f1 --- /dev/null +++ b/05_typescript/unterricht/tag31/02_ts-functions/src/01_fn-type-expression.ts @@ -0,0 +1,83 @@ +// Function Type Expression +/* +Eine Funktionstyp-Deklaration ist eine Möglichkeit, den Typ einer Funktion zu definieren. +Dabei werden die Typen ihrer Eingänge (Parameter) und ihres Ausgangs (Rückgabewert) definiert. +*/ + +{ + type MathFn = (x: number, y: number) => number; // Funktionstyp-deklaration + + function mathOperationFn(fn: MathFn): number { + return fn(4, 5); + } + + function multiplyFn(a: number, b: number): number { + return a * b; + } + + const multiply = (a: number, b: number): number => { + return a * b; + }; + + // Funktionsausdruck mit Funktionsannotation + const multiply2: MathFn = (a, b) => { + return a * b; + }; + + console.log(multiply(2, 4)); // => 8 + console.log(multiply2(2, 4)); // => 8 + + mathOperationFn(multiplyFn); // => 20 + + //------ + + // Call Signature (a: string) => void + + type greeterFn = (a: string) => void; + + const greeter = (fn: (a: string) => void) => { + fn('Hello, World'); + }; + const greeter2 = (fn: greeterFn) => { + fn('Hello, World'); + }; + + function printToConsole(s: string): void { + console.log(s); + } + + greeter(printToConsole); // => "Hello, World" + greeter2(printToConsole); // => "Hello, World" + + // ------ + + // Call Signature + + const logMessage: (p: string) => void = (message) => { + console.log(message); + }; + + // RECOMMENDED Call Signature als Funktionstyp-Deklaration festlegen + type LogFn = (p: string) => void; + + const logMsg: LogFn = (message) => { + console.log(message); + }; + + logMessage('Hello World'); + logMsg('Hello World'); + + // ----- + type MathFunction = (a: number, b: number) => number; + + // In TypeScript kannst du einer klassischen function-Deklaration nicht direkt einen Funktions-Typ zuweisen. + function mathOperation(fn: MathFunction) { + return fn(10, 20); + } + + const subtract: MathFunction = (x, y) => { + return x - y; + }; + + console.log(mathOperation(subtract)); // => -10 +} diff --git a/05_typescript/unterricht/tag31/02_ts-functions/src/02_fn-call-signature.ts b/05_typescript/unterricht/tag31/02_ts-functions/src/02_fn-call-signature.ts new file mode 100644 index 0000000..85aa156 --- /dev/null +++ b/05_typescript/unterricht/tag31/02_ts-functions/src/02_fn-call-signature.ts @@ -0,0 +1,91 @@ +// Call Signatures +/* +Eine Call Signature ermöglicht es dir, die Art und Weise zu beschreiben, wie eine Funktion aufgerufen werden soll, indem du die Typen ihrer Parameter und ihren Rückgabetyp auf eine wiederverwendbare Weise festlegst. Dies ist besonders nützlich, wenn du konsistente Funktionstypen erstellen möchtest, die in deiner gesamten Codebasis angewendet werden können. +*/ + +{ + // (a: number, b: number) => string -> is a "call signature" + type SumFn = (p1: number, p2: number) => string; + + const sum: SumFn = (a, b) => { + return `The sum is ${a + b}`; + }; + + const sum2 = (a: number, b: number): string => { + return `The sum is ${a + b}`; + }; + + console.log(sum(40, 2)); // => 'The sum is 42' + console.log(sum2(60, 7)); // => 'The sum is 67' + + // ------ + + // EMPFEHLUNG: call signature und type annotation von einander trennen und call signature in type alias oder interface definieren. + const sum3: (a: { a: number; b: number }, b: number) => string = ( + a: { a: number; b: number } = { a: 1, b: 2 }, + b: number = 2, + ): string => { + return `The sum is ${a.a + b}`; + }; + + type Operation = (x: number, y: number) => number; + + const add: Operation = (x, y) => { + return x + y; + }; + + const multiply: Operation = (x, y) => { + return x * y; + }; + + console.log(add(123, 321)); //=> 444 + console.log(multiply(25, 25)); //=> 625 + + //-------- + + type Person = { + name: string; + age: number; + walk: (speed?: number) => string; + run(speed?: number): string; + }; + + const person: Person = { + name: 'John', + age: 23, + walk() { + return "i'm walking."; + }, + run(n) { + return `i'm running very fast (${n?.toFixed(1)}km/h).`; + }, + }; + + console.log(person.walk()); + console.log(person.run(100)); +} + +//-------- +console.log('--- Describable Function ---'); +//-------- +{ + // VORSICHT SONDERFALL in der Signatur bei describable Function + + // Bei Describable Function : anstatt => für Rückgabe + type DescribableFunction = { + description: string; + (someArg: number): boolean; // Call signature + }; + + function doSomething(fn: DescribableFunction, n = 6) { + console.log(fn.description + ' returned ' + fn(n)); + } + + const myFunc = (someArg: number): boolean => { + return someArg > 3; + }; + myFunc.description = 'Default description'; + + doSomething(myFunc); // => "Default description returned true" + doSomething(myFunc, 2); // => "Default description returned false" +} diff --git a/05_typescript/unterricht/tag31/02_ts-functions/src/03_fn-generics.ts b/05_typescript/unterricht/tag31/02_ts-functions/src/03_fn-generics.ts new file mode 100644 index 0000000..8c9134f --- /dev/null +++ b/05_typescript/unterricht/tag31/02_ts-functions/src/03_fn-generics.ts @@ -0,0 +1,63 @@ +// Generic Functions +/* +In TypeScript werden Funktionen durch die Verwendung von Generics noch leistungsfähiger und flexibler. Generics ermöglichen es uns, wiederverwendbare Funktionen zu erstellen, die mit einer Vielzahl von Typen arbeiten können und dabei die Sicherheit und Vorhersagbarkeit des Typsystems von TypeScript beibehalten. + +Diese Flexibilität ermöglicht es Entwicklern, vielseitigeren und besser wartbaren Code zu schreiben, ohne die Typsicherheit zu opfern. +*/ + +{ + // const identity = (arg: number | string): number | string => { + // // code logic which can handle different data types + // return arg; + // }; + + const identityNumber = (arg: number): number => { + // code logic which can handle different data types + return arg; + }; + + const identityString = (arg: string): string => { + // code logic which can handle different data types + return arg; + }; + + // Generic Function + const identity = (arg: T): T => { + // code logic with different types + return arg; + }; + + let resultNumber = identity(42); // T is number + let resultString = identity('Hello TypeScript'); // T is string + let resultStr = identity('Hello TypeScript'); // T is string + let resultBoolean = identity(true); // T is boolean + + console.log(resultNumber, resultString, resultStr, resultBoolean); + // --------------- + + // const firstElement = (arr: any[]) => { + // return arr[0]; + // }; + + const firstElement = (arr: T[]): T => { + return arr[0]; + }; + + console.log(firstElement(['Stefan', 'Christian', 'Florian', 'Benjamin'])); // => 'Stefan' <- string + console.log(firstElement([23, 19, 5, 42, 2, 45])); // => 23 <- number + console.log( + firstElement([ + { firstName: 'John', age: 27 }, + { firstName: 'JAne', age: 18 }, + ]), + ); // => {...} <- object + console.log(firstElement([])); // => undefined + + // --- + + let inferredResult = identity('Hello'); // TypeScript infers that T is string + let explicitResult = identity(42); // Explicitly sets T to number + + console.log(inferredResult); + console.log(explicitResult); +}