Middle+
Vazifa: Observer/Observer modeli bilan subscribe, unsubscribe va next metodlari bilan sinfni amalga oshiring. Barcha metodlar TypeScriptda qat'iy tiplangan bo'lishi kerak. subscribe metodi yozilishdan chiqish uchun funktsiya qaytarishi kerak.
sobes.tech AI
AIdan javob
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); // Ничего не выведет