diff --git a/04_typescript/uebungen/01_erkennung-typenfehlern/assets/js/bundle.js b/04_typescript/uebungen/01_erkennung-typenfehlern/assets/js/bundle.js
index 4d6fff6..4657130 100644
--- a/04_typescript/uebungen/01_erkennung-typenfehlern/assets/js/bundle.js
+++ b/04_typescript/uebungen/01_erkennung-typenfehlern/assets/js/bundle.js
@@ -1,18 +1,10 @@
(() => {
- var __getOwnPropNames = Object.getOwnPropertyNames;
- var __commonJS = (cb, mod) => function __require() {
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
- };
-
// src/main.ts
- var require_main = __commonJS({
- "src/main.ts"() {
- function calculateDiscount(price, discount) {
- return Number((price - discount).toFixed(2));
- }
- var finalPrice = calculateDiscount(100, 10);
- console.log(`The final price is $${finalPrice}`);
- }
- });
- require_main();
+ {
+ const calculateDiscount = (price, discount) => {
+ return price - discount;
+ };
+ const finalPrice = calculateDiscount(100, 10);
+ console.log(finalPrice);
+ }
})();
diff --git a/04_typescript/uebungen/01_erkennung-typenfehlern/package.json b/04_typescript/uebungen/01_erkennung-typenfehlern/package.json
index 34036a0..9c9a260 100644
--- a/04_typescript/uebungen/01_erkennung-typenfehlern/package.json
+++ b/04_typescript/uebungen/01_erkennung-typenfehlern/package.json
@@ -9,5 +9,5 @@
"keywords": [],
"author": "",
"license": "ISC",
- "type": "commonjs"
+ "type": "module"
}
diff --git a/04_typescript/uebungen/01_erkennung-typenfehlern/src/main.ts b/04_typescript/uebungen/01_erkennung-typenfehlern/src/main.ts
index 5511d5c..304f8b5 100644
--- a/04_typescript/uebungen/01_erkennung-typenfehlern/src/main.ts
+++ b/04_typescript/uebungen/01_erkennung-typenfehlern/src/main.ts
@@ -1,5 +1,9 @@
-function calculateDiscount(price: number, discount: string): number {
- return price - parseFloat(discount);
-}
+{
+ const calculateDiscount = (price: number, discount: number): number => {
+ return price - discount;
+ };
-const finalPrice = calculateDiscount(100, 10);
+ const finalPrice = calculateDiscount(100, 10);
+
+ console.log(finalPrice);
+}
diff --git a/04_typescript/uebungen/02_user-email/assets/js/bundle.js b/04_typescript/uebungen/02_user-email/assets/js/bundle.js
index fd18a3d..5afc701 100644
--- a/04_typescript/uebungen/02_user-email/assets/js/bundle.js
+++ b/04_typescript/uebungen/02_user-email/assets/js/bundle.js
@@ -1,18 +1,16 @@
(() => {
- var __getOwnPropNames = Object.getOwnPropertyNames;
- var __commonJS = (cb, mod) => function __require() {
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
- };
-
// src/main.ts
- var require_main = __commonJS({
- "src/main.ts"() {
- var user = {
- name: "John Doe",
- age: 30
- };
- console.log(user.email?.toLowerCase());
- }
- });
- require_main();
+ var user = {
+ name: "John Doe",
+ age: 30
+ };
+ user.email = "johndoe@mail.com";
+ var user2 = {
+ name: "Jane Doe",
+ age: 30
+ };
+ console.log(user.email ? user.email : "no email");
+ console.log(user2.email ? user2.email : "no email");
+ console.log("Email user: ", user?.email);
+ console.log("Email user2: ", user2?.email);
})();
diff --git a/04_typescript/uebungen/02_user-email/package.json b/04_typescript/uebungen/02_user-email/package.json
index 574718d..7863254 100644
--- a/04_typescript/uebungen/02_user-email/package.json
+++ b/04_typescript/uebungen/02_user-email/package.json
@@ -9,5 +9,5 @@
"keywords": [],
"author": "",
"license": "ISC",
- "type": "commonjs"
+ "type": "module"
}
diff --git a/04_typescript/uebungen/02_user-email/src/main.ts b/04_typescript/uebungen/02_user-email/src/main.ts
index fc51dbc..669d656 100644
--- a/04_typescript/uebungen/02_user-email/src/main.ts
+++ b/04_typescript/uebungen/02_user-email/src/main.ts
@@ -1,6 +1,22 @@
-const user = {
+interface User {
+ name: string;
+ age: number;
+ email?: string;
+}
+
+const user: User = {
name: 'John Doe',
age: 30,
};
-console.log(user.email.toLowerCase());
+user.email = 'johndoe@mail.com';
+
+const user2: User = {
+ name: 'Jane Doe',
+ age: 30,
+};
+
+console.log(user.email ? user.email : 'no email');
+console.log(user2.email ? user2.email : 'no email');
+console.log('Email user: ', user?.email);
+console.log('Email user2: ', user2?.email);
diff --git a/04_typescript/uebungen/03_vehicle-interface/assets/js/bundle.js b/04_typescript/uebungen/03_vehicle-interface/assets/js/bundle.js
new file mode 100644
index 0000000..d96d56f
--- /dev/null
+++ b/04_typescript/uebungen/03_vehicle-interface/assets/js/bundle.js
@@ -0,0 +1,22 @@
+(() => {
+ // src/main.ts
+ {
+ let operateVehicle = function(vehicle) {
+ if (vehicle.startEngine("car-key")) {
+ return vehicle.drive(60);
+ } else {
+ return "Engine failed to start.";
+ }
+ };
+ const myCar = {
+ startEngine: (key) => {
+ console.log(`Engine started with key: ${key}`);
+ return true;
+ },
+ drive: (speed) => {
+ return `Driving at ${speed} km/h`;
+ }
+ };
+ console.log(operateVehicle(myCar));
+ }
+})();
diff --git a/04_typescript/uebungen/03_vehicle-interface/package.json b/04_typescript/uebungen/03_vehicle-interface/package.json
index 4ffcaba..9361abd 100644
--- a/04_typescript/uebungen/03_vehicle-interface/package.json
+++ b/04_typescript/uebungen/03_vehicle-interface/package.json
@@ -9,5 +9,5 @@
"keywords": [],
"author": "",
"license": "ISC",
- "type": "commonjs"
+ "type": "module"
}
diff --git a/04_typescript/uebungen/03_vehicle-interface/src/main.ts b/04_typescript/uebungen/03_vehicle-interface/src/main.ts
index 0994685..b94a87f 100644
--- a/04_typescript/uebungen/03_vehicle-interface/src/main.ts
+++ b/04_typescript/uebungen/03_vehicle-interface/src/main.ts
@@ -1,24 +1,26 @@
-interface Vehicle {
- startEngine: (key: string) => boolean;
- drive: (speed: number) => string;
-}
-
-const myCar = {
- startEngine: () => {
- console.log('Engine started');
- return true;
- },
- drive: () => {
- return 'Driving at default speed';
- },
-};
-
-function operateVehicle(vehicle: Vehicle): string {
- if (vehicle.startEngine('car-key')) {
- return vehicle.drive(60);
- } else {
- return 'Engine failed to start.';
+{
+ interface Vehicle {
+ startEngine: (key: string) => boolean;
+ drive: (speed: number) => string;
}
-}
-console.log(operateVehicle(myCar));
+ const myCar = {
+ startEngine: (key: string): boolean => {
+ console.log(`Engine started with key: ${key}`);
+ return true;
+ },
+ drive: (speed: number): string => {
+ return `Driving at ${speed} km/h`;
+ },
+ };
+
+ function operateVehicle(vehicle: Vehicle): string {
+ if (vehicle.startEngine('car-key')) {
+ return vehicle.drive(60);
+ } else {
+ return 'Engine failed to start.';
+ }
+ }
+
+ console.log(operateVehicle(myCar));
+}
diff --git a/04_typescript/unterricht/tag31/01_ts-fundamentals/assets/js/09_type-inference.js b/04_typescript/unterricht/tag31/01_ts-fundamentals/assets/js/09_type-inference.js
index 2daa5f1..0e0f636 100644
--- a/04_typescript/unterricht/tag31/01_ts-fundamentals/assets/js/09_type-inference.js
+++ b/04_typescript/unterricht/tag31/01_ts-fundamentals/assets/js/09_type-inference.js
@@ -2,6 +2,7 @@
// src/09_type-inference.ts
{
let greeting = "Hello World";
+ greeting = "Hello TS!";
let count = 123;
let isCompleted = true;
const isSmoking = true;
diff --git a/04_typescript/unterricht/tag31/01_ts-fundamentals/src/05_type-definition-function.ts b/04_typescript/unterricht/tag31/01_ts-fundamentals/src/05_type-definition-function.ts
index 5bc98a1..317f9ba 100644
--- a/04_typescript/unterricht/tag31/01_ts-fundamentals/src/05_type-definition-function.ts
+++ b/04_typescript/unterricht/tag31/01_ts-fundamentals/src/05_type-definition-function.ts
@@ -14,3 +14,9 @@
return cart.getTotal();
};
}
+
+// Das Prinzip: void bedeutet „Ignoriere die Rückgabe“, nicht „Es darf nichts zurückgegeben werden“
+
+// Wenn du ein Interface oder einen Funktionstyp mit void definierst, sagst du TypeScript damit: „Es ist mir völlig egal, was diese Funktion zurückgibt. Ich werde mit dem Rückgabewert sowieso nichts tun.“
+
+// Es ist also ein Mindestversprechen. Die Funktion erfüllt den Vertrag, indem sie aufgerufen werden kann. Wenn sie zusätzlich noch eine Zahl (oder einen String) zurückgibt, ignoriert TypeScript das einfach an der Stelle, wo das Interface genutzt wird.
diff --git a/04_typescript/unterricht/tag31/01_ts-fundamentals/src/09_type-inference.ts b/04_typescript/unterricht/tag31/01_ts-fundamentals/src/09_type-inference.ts
index 999ca1c..ec4849d 100644
--- a/04_typescript/unterricht/tag31/01_ts-fundamentals/src/09_type-inference.ts
+++ b/04_typescript/unterricht/tag31/01_ts-fundamentals/src/09_type-inference.ts
@@ -5,6 +5,8 @@
// greeting = 123; // Type 'number' is not assignable to type 'string'.
+ greeting = 'Hello TS!';
+
let count = 123; // inferred as number
let isCompleted = true; //inferred as boolean
diff --git a/04_typescript/unterricht/tag32/01_ts-types/assets/img/Understand-Typescript.jpg b/04_typescript/unterricht/tag32/01_ts-types/assets/img/Understand-Typescript.jpg
new file mode 100644
index 0000000..c3a5d16
Binary files /dev/null and b/04_typescript/unterricht/tag32/01_ts-types/assets/img/Understand-Typescript.jpg differ
diff --git a/04_typescript/unterricht/tag32/01_ts-types/assets/js/01_grundtypen.js b/04_typescript/unterricht/tag32/01_ts-types/assets/js/01_grundtypen.js
new file mode 100644
index 0000000..1d4e56a
--- /dev/null
+++ b/04_typescript/unterricht/tag32/01_ts-types/assets/js/01_grundtypen.js
@@ -0,0 +1,44 @@
+(() => {
+ // src/01_grundtypen.ts
+ {
+ let greeting = "Welcome to TypeScript";
+ const greeting2 = "Welcome to TypeScript";
+ let wholeNumber = 10;
+ let decimalNumber = 19.99;
+ let isLearning = true;
+ let age = 41;
+ let age2 = 30;
+ let scores = [10, 20, 30, 40];
+ let moreScores = [50, 60, 70];
+ const mixedScores = [10, 20, 30, "40"];
+ const moreMixedScores = [50, "60", 70];
+ let randomValue = 42;
+ randomValue = "Now I'm a string!";
+ randomValue = { name: "TypeScript" };
+ const $ = (qs) => document.querySelector(qs);
+ const $$ = (qs) => Array.from(document.querySelectorAll(qs));
+ const multiply = (a, b) => {
+ return a * b;
+ };
+ console.log(multiply(2, 4));
+ let bigNumber = 9007199254740992n;
+ console.log(Number.MAX_SAFE_INTEGER);
+ const id = /* @__PURE__ */ Symbol(1);
+ const id2 = /* @__PURE__ */ Symbol(1);
+ console.log(id === id2);
+ console.log(
+ greeting,
+ greeting2,
+ wholeNumber,
+ decimalNumber,
+ isLearning,
+ age,
+ age2,
+ scores.join(", "),
+ moreScores.join(", "),
+ mixedScores.join(", "),
+ moreMixedScores.join(", "),
+ bigNumber
+ );
+ }
+})();
diff --git a/04_typescript/unterricht/tag32/01_ts-types/assets/js/02_fetch-example.js b/04_typescript/unterricht/tag32/01_ts-types/assets/js/02_fetch-example.js
new file mode 100644
index 0000000..b0b6405
--- /dev/null
+++ b/04_typescript/unterricht/tag32/01_ts-types/assets/js/02_fetch-example.js
@@ -0,0 +1,43 @@
+(() => {
+ // src/02_fetch-example.ts
+ {
+ const fetchData = async () => {
+ return "Data fetched successfully!";
+ };
+ const getPerson = () => {
+ return new Promise((resolve, reject) => {
+ fetch("https://dummyjson.com/users/1?select=firstName,lastName,age").then((res) => {
+ if (!res.ok) throw Error("HTTP-Request went wrong.");
+ return res.json();
+ }).then((data) => {
+ resolve(data);
+ }).catch((err) => {
+ console.error(err);
+ reject(err);
+ });
+ });
+ };
+ const getPersonAsync = async () => {
+ try {
+ const res = await fetch("https://dummyjson.com/users/1?select=firstName,lastName,age");
+ if (!res.ok) {
+ throw Error(`HTTP-Request went wrong: ${res.status}`);
+ }
+ const data = await res.json();
+ return data;
+ } catch (err) {
+ if (err instanceof Error) {
+ console.error(err);
+ throw err;
+ }
+ throw new Error("An unknown error occurred.");
+ }
+ };
+ getPerson().then((data) => {
+ console.log(data);
+ });
+ getPersonAsync().then((data) => {
+ console.log(data);
+ });
+ }
+})();
diff --git a/04_typescript/unterricht/tag32/01_ts-types/assets/js/03_object-types.js b/04_typescript/unterricht/tag32/01_ts-types/assets/js/03_object-types.js
new file mode 100644
index 0000000..8afef30
--- /dev/null
+++ b/04_typescript/unterricht/tag32/01_ts-types/assets/js/03_object-types.js
@@ -0,0 +1,2 @@
+(() => {
+})();
diff --git a/04_typescript/unterricht/tag32/01_ts-types/index.html b/04_typescript/unterricht/tag32/01_ts-types/index.html
new file mode 100644
index 0000000..3fe3001
--- /dev/null
+++ b/04_typescript/unterricht/tag32/01_ts-types/index.html
@@ -0,0 +1,24 @@
+
+
+
+
+
+ TypeScript - Types
+
+
+
+
+
+
+
+
TypeScript - Types
+
+ TypeScript ist eine von Microsoft entwickelte Skriptsprache, die auf den Vorschlägen zum
+ ECMAScript-6-Standardbasiert und statische Typisierung zu JavaScript hinzufügt. Sprachkonstrukte von
+ TypeScript, wie Klassen, Vererbung, Module und anonyme Funktionen, wurden auch in ECMAScript 6 übernommen.
+