title: RequireJS module declarations in TypeScript
body: <p>I've recently updated to TypeScript 0.9.5 which is now throwing up new errors during compilation.</p>
  
  <p>I'm defining an AMD module using RequireJS as outlined <a href="http://requirejs.org/docs/api.html#modulename" rel="nofollow">HERE</a>.</p>
  
  <pre><code>define('myModule', [
      'angular',
      'config'
      ], function (angular, config) {
          'use strict';
  
          ...
  });
  </code></pre>
  
  <p>The TypeScript definition file for RequireJS has the following definition for <code>RequireDefine</code>:</p>
  
  <pre><code>/**
  * Define a module with a name and dependencies.
  * @param name The name of the module.
  * @param deps List of dependencies module IDs.
  * @param ready Callback function when the dependencies are loaded.
  *   callback deps module dependencies
  *   callback return module definition
  **/
  (name: string, deps: string[], ready: (...deps: any[]) =&gt; any): void;
  </code></pre>
  
  <p>However I'm getting the following errors:</p>
  
  <pre><code>error TS2082: Build: Supplied parameters do not match any signature of call target:
  error TS2087: Build: Could not select overload for 'call' expression.
  </code></pre>
  
  <p>The intellisense error states:</p>
  
  <p><em>Call signatures of types '(angular:any, config:any) => any' and '(...deps: any[]) => any' are incompatible.</em></p>
  
  <p>Is the definition file incorrect? Where am I going wrong with the callback parameters?</p>
  
  <p><em><strong>Further Information:</em></strong></p>
  
  <p>Changing the declaration to the following now compiles.</p>
  
  <pre><code>define('myModule', [
      'angular',
      'config'
      ], function (...args:any[]) {
          'use strict';
  
          ...
  });
  </code></pre>
  
  <p>However moving to a single parameter object is surely a backwards step? Is this a limitation of the definition file or the TypeScript compiler?</p>