title: Declaring Function type with TypeScript
body: <p>I know I have asked this before, and I cannot find the question nor remember the answer.</p>
  
  <p>I have an object with several methods with the same signature:</p>
  
  <pre><code>{
  
    foo: function(){
      return [];   // (return Array&lt;T&gt;)
    },
  
    bar: function(){
      return [];   // (return Array&lt;T&gt;)
    },
  
    baz: function(){
      return [];   // (return Array&lt;T&gt;)
    }
  
  }
  </code></pre>
  
  <p>When I declare the interface for this object:</p>
  
  <pre><code>interface SomeObj {
  
     foo: Function,
     bar: Function,
     baz: Function
  
  }
  </code></pre>
  
  <p>but I want to declare a type for these functions, something like this:</p>
  
  <pre><code>  type TestSuiteGetterFn &lt;T&gt;() =&gt; Array&lt;T&gt;;
  
    interface SomeObj {
  
         foo: TestSuiteGetterFn,
         bar: TestSuiteGetterFn,
         baz: TestSuiteGetterFn
  
      }
  </code></pre>
  
  <p>but this does not compile.  </p>
  
  <p>I have rarely found something so difficult to Google as this one.</p>