title: @override a method, Google Closure Compiler
body: <p>I'm trying to override a method of a superclass and compile the code using Google Closure Compiler but I'm getting a warning about wrong types.</p>
  
  <pre><code>/Users/Jan/dev/cro/public/app/js/LibraryController.js:55: WARNING -
    mismatch of the setState property type and the type of the property it overrides
    from superclass app.Controller
  original: function (this:app.Controller, Object): undefined
  override: function (this:app.LibraryController, Object, string, string): undefined
  app.LibraryController.prototype.setState = function (state, section, article) {
  </code></pre>
  
  <p>As you can see, I'm not changing the type of the argument accepted by the super method nor do I change the returned type.</p>
  
  <p>Does anyone know how to resolve this issue? thanks.</p>
  
  <p>To clarify, here are the definitions of the individual methods.</p>
  
  <pre><code>/**
   * @param {!Object} state The new state.
   */
  app.Controller.prototype.setState = function (state) { ... };
  
  /**
   * @param {!Object} state The new state.
   * @param {string} section A section ID.
   * @param {string} article An article ID.
   * @override
   */
  app.LibraryController.prototype.setState = function (state, section, article) { ... }
  </code></pre>