Sobes.tech
Middle+

მოსალუქე: განახორციელეთ კლასი, რომელსაც აქვს subscribe, unsubscribe და next მეთოდები (Observer/მონიტორინგის ნიმუში). ყველა მეთოდი უნდა იყოს მკაცრად ტიპიზებული 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); // Ничего не выведет