Sobes.tech
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); // Ничего не выведет