helpCommand(enableOrNameAndArgs, description) {
    if (typeof enableOrNameAndArgs === 'boolean') {
      this._addImplicitHelpCommand = enableOrNameAndArgs;
      if (enableOrNameAndArgs && this._defaultCommandGroup) {
        // make the command to store the group
        this._initCommandGroup(this._getHelpCommand());
      }
      return this;
    }

    const nameAndArgs = enableOrNameAndArgs ?? 'help [command]';
    const [, helpName, helpArgs] = nameAndArgs.match(/([^ ]+) *(.*)/);
    const helpDescription = description ?? 'display help for command';

    const helpCommand = this.createCommand(helpName);
    helpCommand.helpOption(false);
    if (helpArgs) helpCommand.arguments(helpArgs);
    if (helpDescription) helpCommand.description(helpDescription);

    this._addImplicitHelpCommand = true;
    this._helpCommand = helpCommand;
    // init group unless lazy create
    if (enableOrNameAndArgs || description) this._initCommandGroup(helpCommand);

    return this;
  }
Customise or override default help command. By default a help command is automatically added if your command has subcommands.

@example
   program.helpCommand('help [cmd]');
   program.helpCommand('help [cmd]', 'show help');
   program.helpCommand(false); // suppress default help command
   program.helpCommand(true); // add help command even if no subcommands

@param {string|boolean} enableOrNameAndArgs - enable with custom name and/or arguments, or boolean to override whether added
@param {string} [description] - custom description
@return {Command} `this` command for chaining