Я не уверен, правильно ли я понял проблему, но похоже, что вы хотите реализовать что-то вроде этого:
function func(separator = '\n', ...args) {
return args.join(separator);
}
console.log(func(' - MySeparator - ', 'Arg1', 'Arg2', 'Arg3'));
Первый аргумент в func
принимает разделитель, который вы хотите использовать, а все остальные аргументы будут переданы в виде массива в функцию, где вы можете использовать join
склеить их вместе с вашим разделителем.
UPD1 : Почему мы не можем сначала принять аргумент распространения, а затем разделитель в конце?
Как указано в MDN :
Последний параметр функции может иметь префикс ..., что приведет к тому, что все оставшиеся (предоставленные пользователем) аргументы будут помещены в «стандарт» * Массив 1029 *. Только последний параметр может быть параметром rest.
Краткое объяснение этого случая: мы не знаем, передал ли разработчик аргумент в separator
или остальные аргументы. Вот почему мы используем известные позиционные аргументы, чтобы сопоставить их с соответствующими именами переменных, и только тогда мы можем использовать «все, что осталось».