argument(name, description, parseArg, defaultValue) {
    const argument = this.createArgument(name, description);
    if (typeof parseArg === 'function') {
      argument.default(defaultValue).argParser(parseArg);
    } else {
      argument.default(parseArg);
    }
    this.addArgument(argument);
    return this;
  }
Define argument syntax for command.

The default is that the argument is required, and you can explicitly
indicate this with <> around the name. Put [] around the name for an optional argument.

@example
program.argument('<input-file>');
program.argument('[output-file]');

@param {string} name
@param {string} [description]
@param {(Function|*)} [parseArg] - custom argument processing function or default value
@param {*} [defaultValue]
@return {Command} `this` command for chaining