В JavaScript имеет возможность передавать функции больше параметров, чем это требуется, и лишние просто игнорируются без каких-либо ошибок.
Например:
буквы = ['a','b','c']
// корректный вызов
буквы.indexOf('a')
// этот вызов тоже работает без ошибок
буквы.indexOf('a', "лишний текст", "игнорировать меня", 38)
Существуют ли способы обнаружения таких случаев? В моем опыте такие ситуации часто указывают на ошибки в коде. Выявление их через анализ кода или во время выполнения помогло бы исправить эти проблемы.
Особенно это актуально в случаях, когда ожидаются изменения в базовых типах, которые на самом деле не произошли. Было бы полезно выводить предупреждение, когда подобное происходит.
Например:
Date.parse('02--12--2012', 'dd--MM--YYYY')
Важно отметить: я хочу решение, которое не потребует добавления проверок в каждую функцию или код других разработчиков.