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