typescript / intermediate
Snippet
Selbstreferenzierende generische Schnittstellen für rekursive Baumstrukturen
Schnittstellen in TypeScript können sich selbst rekursiv referenzieren, um hierarchische Datenstrukturen wie Bäume zu modellieren, während statische Typparameter über alle Ebenen hinweg erhalten bleiben.
snippet.ts
typescript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
interface TreeNode<T> {value: T;children?: TreeNode<T>[];}function countTreeNodes<T>(node: TreeNode<T>): number {let total = 1;if (node.children) {for (const child of node.children) {total += countTreeNodes(child);}}return total;}const root: TreeNode<string> = {value: "root",children: [{ value: "leaf1" }, { value: "leaf2" }]};
Erklärung
1
interface TreeNode<T> { ... children?: TreeNode<T>[]; }
Definiert ein generisches Interface mit einem Wert vom Typ T und einem optionalen Array gleichartiger Kindknoten.
2
function countTreeNodes<T>(node: TreeNode<T>): number {
Implementiert eine rekursive Traversierungsfunktion für Knoten des rekursiven Schemas.
3
const root: TreeNode<string> = { ... };
Instanziiert eine verschachtelte Baumstruktur mit String-Werten und validierten Kindknoten-Array-Grenzen.