Tasks
Задача 1. Отримання випадкового елемента.
Опиши функцію getRandom
, яка приймає масив будь-якого типу та повертає випадковий елемент з нього.
Задача 2. Менеджер операцій.
Створи клас OperationManager
, який зберігає список операцій будь-якого типу і має метод executeAll(callback: (item: T) => void) для виконання їх усіх.
Задача 3. Інтерфейс для перетворювача.
Створи інтерфейс Transformer
з методом transform(value: T): U. Реалізуй кілька прикладів трансформацій: — рядок у число, — число у рядок, — об’єкт у JSON.
Задача 4. Обмеження для типів, що реалізують інтерфейс.
Створи інтерфейс Printable з методом print(): void. Опиши узагальнену функцію printAll
(items: T[]), яка викликає метод print() для кожного елемента масиву.
Задача 5. Ролі користувачів і їхні дозволи.
Опиши тип Roles = "admin" | "editor" | "viewer". Створи тип RolePermissions = Record
, де кожен ключ містить список дій, які дозволені ролі.