Обобщённая функция слияния массивов с кастомным компаратором

TypeScript Средний generics

Задача «Обобщённая функция слияния массивов с кастомным компаратором»

Реализуйте обобщённую функцию `mergeArrays<T>`, которая принимает два массива элементов типа `T` и функцию-компаратор `comparator: (a: T, b: T) => number`. Функция должна возвращать новый массив, содержащий все элементы из обоих массивов, отсортированные в порядке возрастания согласно компаратору. Исходные массивы не должны быть изменены. Если компаратор возвращает отрицательное число, `a` считается меньшим; положительное — `b` меньшим; ноль — равными. При равенстве порядок не важен. Ограничения: длины массивов от 1 до 10^5, элементы могут быть любого типа.

Формат ввода

Первая строка — длина первого массива N. Вторая строка — N элементов через пробел. Третья строка — длина второго массива M. Четвёртая строка — M элементов через пробел. Пятая строка — строка с компаратором: 'number' для чисел (сравнение по возрастанию), 'string' для строк (лексикографическое сравнение).

Формат вывода

Строка с элементами результирующего массива, разделёнными пробелом.

Примеры

Пример 1

ВВОД
5 3 1 4 1 5
ВЫВОД
1 1 3 4 5
main.ts