title: Supplied parameters do not match any signature of call target in wrapper method - Typescript
body: <p>Ok I'm guessing I'm missing something really simple on this one.</p>
  
  <p>Lets say I have multiple methods that repeat a lot of the same things like this:</p>
  
  <pre><code>    public getDepartments(id: number): ng.IPromise&lt;IDepartmentViewModel[]&gt; {
          this.common.loadStart();
          return this.unitOfWork.teamRepository.getDepartmentsForTeam(id).then((response: IDepartmentViewModel[]) =&gt; {
              this.common.loadComplete();
              return response;
          }).catch((error) =&gt; {
                  this.common.loadReset();
                  return error;
              });
      }
  </code></pre>
  
  <p>Tons of boilerplate for a single call to <code>this.unitOfWork.teamRepository.getDepartmentsForTeam(id)</code></p>
  
  <p>so I wanted to make a generic wrapper for the boilerplate such as:</p>
  
  <pre><code>private internalCall&lt;T&gt;(method: () =&gt; ng.IPromise&lt;T&gt;): ng.IPromise&lt;T&gt; {
          this.common.loadStart();
          return method().then((response: T) =&gt; {
              this.common.loadComplete();
              return response;
          }).catch((error) =&gt; {
              this.common.loadReset();
              return error;
          });
      }
  </code></pre>
  
  <p>Which I could then call like:   </p>
  
  <pre><code>public getDepartments(id: number): ng.IPromise&lt;IDepartmentViewModel[]&gt; {
          return this.internalCall&lt;IDepartmentViewModel[]&gt;(this.unitOfWork.teamRepository.getDepartmentsForTeam(id));
  </code></pre>
  
  <p>But I get the following error:</p>
  
  <pre><code>Supplied parameters do not match any signature of call target:
  Type '() =&gt; ng.IPromise&lt;IDepartmentViewModel[]&gt;' requires a call signature, but type 'ng.IPromise&lt;IDepartmentViewModel[]&gt;' lacks one.
  </code></pre>
  
  <p>What is the right way to pass my method into the other to call it with supplied parameters?</p>