Changes in new versions / TypeScript 5.2

// *** in version 5.2: ***
class Connection implements AsyncDisposable {
    async [Symbol.asyncDispose]() {
        await this.close();
    }
    async close() { /* закрыть соединение */ }
}

async function query() {
    await using conn = new Connection();
    // работа с conn
// здесь дождётся conn[Symbol.asyncDispose]() перед продолжением