Т.к. JS не имеет нормальных перегрузок, то такие интерфейсы описываются довольно кривовато:
/**
*
* @param {...Function|Array.<string>} args - неведомая хрень, которая принимает не ограниченное количество опциональных параметров
*/
function ProxyCap (args) {