klassen kata
This commit is contained in:
parent
5f87d616ee
commit
e6ab322d23
24
src/03-klassen/KATA/starter.ts
Normal file
24
src/03-klassen/KATA/starter.ts
Normal file
@ -0,0 +1,24 @@
|
||||
// 1. Erstelle die Basisklasse `Person`
|
||||
class Person {
|
||||
constructor(public name: string, public age: number) {}
|
||||
|
||||
getInfo(): string {
|
||||
return `Name: ${this.name}, Alter: ${this.age}`;
|
||||
}
|
||||
}
|
||||
|
||||
// 2. Erstelle die Klasse `Employee`, die von `Person` erbt
|
||||
// TODO: `Employee` Klasse ergänzen mit `position` und `getInfo()` überschreiben
|
||||
|
||||
// 3. Definiere das Interface `IContact`
|
||||
// TODO: Interface mit `email`, `phone` und `getContactInfo()` erstellen
|
||||
|
||||
// 4. Implementiere `IContact` in `Employee`
|
||||
// TODO: `Employee` soll auch `IContact` implementieren
|
||||
|
||||
// 5. Erstelle den Type Alias `EmployeeRecord`
|
||||
// TODO: `EmployeeRecord` als `{ id: number, data: Employee }` definieren
|
||||
|
||||
// 6. Erstelle die Klasse `Company`
|
||||
// TODO: `Company` soll eine Index-Signatur für `EmployeeRecords` haben
|
||||
// TODO: Methoden `addEmployee(employee: Employee)` und `getEmployee(id: number)` implementieren
|
||||
37
src/03-klassen/KATA/uebung.md
Normal file
37
src/03-klassen/KATA/uebung.md
Normal file
@ -0,0 +1,37 @@
|
||||
# Coding Kata: Benutzerverwaltung mit TypeScript
|
||||
|
||||
## Ziel
|
||||
Dieses Coding Kata hilft dir, **Klassen, Interfaces, Typen, Index-Signaturen und Type Aliase** in TypeScript praktisch zu üben. Du wirst eine einfache **Benutzerverwaltung** entwickeln.
|
||||
|
||||
## Aufgaben
|
||||
|
||||
### 1. Erstelle die Basisklasse `Person`
|
||||
- Enthält `name` (string) und `age` (number).
|
||||
- Methode `getInfo()`, die `"Name: [name], Alter: [age]"` zurückgibt.
|
||||
|
||||
### 2. Abgeleitete Klasse `Employee`
|
||||
- Erbt von `Person`.
|
||||
- Zusätzliche Eigenschaft `position` (string).
|
||||
- Überschreibt `getInfo()`, um `position` hinzuzufügen.
|
||||
|
||||
### 3. Interface `IContact`
|
||||
- Enthält `email` (string) und `phone` (string).
|
||||
- Methode `getContactInfo()`, die die Kontaktinformationen als Zeichenkette zurückgibt.
|
||||
|
||||
### 4. Implementiere `IContact` in `Employee`
|
||||
- `Employee` soll `IContact` implementieren.
|
||||
|
||||
### 5. Type Alias `EmployeeRecord`
|
||||
- Definiert ein Objekt `{ id: number, data: Employee }`.
|
||||
|
||||
### 6. Klasse `Company` mit Index-Signatur
|
||||
- Speichert `EmployeeRecords`, wobei `id` als Schlüssel dient.
|
||||
- Methode `addEmployee(employee: Employee)`, die einen neuen Mitarbeiter hinzufügt.
|
||||
- Methode `getEmployee(id: number)`, die einen Mitarbeiter anhand der ID zurückgibt.
|
||||
|
||||
## Bonus
|
||||
- Methode `removeEmployee(id: number)` hinzufügen.
|
||||
- `Record<number, Employee>` als Alternative zur Index-Signatur nutzen.
|
||||
|
||||
## Zeitrahmen
|
||||
⌛ **30 Minuten** für die Umsetzung.
|
||||
Loading…
x
Reference in New Issue
Block a user