title: goog.Timer.callOnce does not meet formal parameter : Google Closure
body: <p>I get the error for formal parameter not matching when using goog.Timer.callOnce even when I think I have declared everything correctly.</p>
  
  <pre><code>goog.Timer.callOnce(/** @type {function} */ this.doSomething,0,this); 
  </code></pre>
  
  <p>the method definition looks like</p>
  
  <pre><code>/**
  * @param {!goog.events.Event} e
  */
  model.someModel.prototype.doSomething = function(e){
  }
  </code></pre>
  
  <p>The error looks like </p>
  
  <pre><code>ERROR - actual parameter 1 of goog.Timer.callOnce does not match formal parameter
  ==&gt; default: [ERROR] found   : function (this:model.someModel, goog.events.Event): undefined
  ==&gt; default: [ERROR] required: (function (this:model.someModel): ?|null|{handleEvent: function (): ?})
  ==&gt; default: [ERROR] goog.Timer.callOnce(/** @type {function} */doSomething,0,this);
  </code></pre>
  
  <p>I also tried typecasting <code>/** @type {function()} */</code> but even this didnt work</p>