Middle+
Görev: Observer/İzleyici deseni ile subscribe, unsubscribe ve next metodlarına sahip bir sınıf uygulayın. Tüm metodlar TypeScript'te katı şekilde tiplenmiş olmalı. subscribe metodu, abonelikten çıkmak için bir fonksiyon döndürmelidir.
sobes.tech yapay zeka
AI'dan gelen yanıt
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); // Ничего не выведет