function log(target: Function, key: string, value: any) {
return {
value: function (...args: any[]) {
var a = args.map(a => JSON.stringify(a)).join();
var result = value.value.apply(this, args);
var r = JSON.stringify(result);
console.log(`Call: ${key}(${a}) => ${r}`);
return result;
}
};
}
Все зашло настолько далеко, что проще загрузить с git последнюю загруженную версию, где все работало.
1 формальный аргумент === 1 реальный аргумент
В JS, правда, как обычно, множество специальных случаев, но их оставим в стороне.
Впрочем, отмечу один: если количество формальных аргументов больше реальных, лишние формальные аргументы принимают значение undefined.
Сравните:
это обычная функция
Функция-конструктор
Возвращаемся к Вашему коду