For codebases I have to maintain, param checks are not an optional concern. And I'll go further to say checking arguments should be at runtime not just authortime (as it is with TypeScript and Flow).
Echoing what others have said here checking for your expected params catches a tonne of bugs. It also makes debugging easier. Combined with named params and you'll have a much easier time working with dynamic languages.
Couple of resources to read up:
Error and how to use it properly with Node and you'll be a better programmer for it joyent.com/node-js/production/design/errors (in any language)assert which you can get by require('@smallwins/validate/assert') …here is an example usage github.com/smallwins/keystash/blob/1e5a528c999662… (it does require that you follow a named params pattern)