В JavaScript, чтобы получить все переданные аргументы функции, включая те, которые имеют значение `undefined`, вы можете использовать объект `arguments` или стрелочные функции с параметрами по умолчанию.
Однако, в вашем коде вы используете деструктуризацию, и если некоторые параметры не указаны, то их значения будут равны `undefined`. Чтобы получить строку с значениями или их названиями, вы можете использовать деструктуризацию в сочетании с оператором `rest`, чтобы собрать оставшиеся параметры.
Для вашего случая, вы можете использовать следующий подход:
```javascript
async function call({ id, code, text, type, codeName } = {}) {
const params = { id, code, text, type, codeName };
// Получаем строку с параметрами
const paramString = Object.entries(params)
.map(([key, value]) => `${key}: ${value === undefined ? 'undefined' : value}`)
.join(', ');
console.log(paramString); // Выводим строку с параметрами
}
// Примеры вызова
call({ id: 1, code: 'A' }); // id: 1, code: A, text: undefined, type: undefined, codeName: undefined
call({}); // id: undefined, code: undefined, text: undefined, type: undefined, codeName: undefined
```
В этом примере мы создаём объект `params`, в который помещаем все переданные параметры. Затем мы используем `Object.entries()` чтобы получить массив пар [ключ, значение], и с помощью метода `map()` создаём массив строк, который затем объединяем в одну строку. Если значение параметра `undefined`, мы явно указываем это в строке.
Таким образом, вы получаете строку с параметрами, даже если некоторые из них не были указаны.