Sobes.tech
Middle+

Маселе: Observer/Көзөмөлчү үлгүсү менен subscribe, unsubscribe жана next методдору бар болгон класс түзүңүз. Бардык методдор TypeScriptте катуу түрдө типтелиши керек. subscribe методу жазылуудан чыгуу үчүн функция кайтаруусу керек.

sobes.tech AI

AIден жооп

typescript class Observer<T> { private observers: Set<(data: T) => void> = new Set();

subscribe(fn: (data: T) => void): () => void { this.observers.add(fn); // Возвращаем функцию отписки return () => this.unsubscribe(fn); }

unsubscribe(fn: (data: T) => void): void { this.observers.delete(fn); }

next(data: T): void { this.observers.forEach(fn => fn(data)); } }

// Пример использования: const obs = new Observer<number>(); const unsubscribe = obs.subscribe(value => console.log('Получено:', value)); obs.next(42); // Выведет: Получено: 42 unsubscribe(); obs.next(100); // Ничего не выведет