capypad
0 Tage Serie
typescript / expert
Snippet

Explizites Ressourcenmanagement mit 'using'

Eingeführt in TypeScript 5.2, nutzt die 'using'-Deklaration den 'Symbol.dispose'-Hook, um sicherzustellen, dass Ressourcen wie Dateihandles oder Datenbankverbindungen automatisch beim Verlassen des Block-Scopes bereinigt werden, ähnlich wie 'using' in C# oder 'with' in Python.

snippet.ts
typescript
1
2
3
4
5
6
7
8
9
10
11
class TempFile implements Disposable {
constructor(public path: string) {}
[Symbol.dispose]() {
console.log(`Deleting ${this.path}`);
}
}
 
function process() {
using file = new TempFile("/tmp/log.txt");
// File is automatically disposed at end of scope
}
Erklärung
1
class TempFile implements Disposable
Definiert eine Klasse, die das globale Disposable-Interface erfüllt.
2
[Symbol.dispose]() { ... }
Die Logik, die sofort ausgeführt wird, wenn der Scope der 'using'-Variable endet.
3
using file = new TempFile(...)
Deklariert eine Ressource im Block-Scope, die automatisch die Bereinigungslogik auslöst.