optional parameters, type-checking and default values for your JavaScript function signatures