<p dir="auto">When I have a Component that takes more just RouteParams in its constructor, I get a TypeScript definition error in the editor. The code runs, but the typings file likely needs to be updated. here is my component<br>
<a target="_blank" rel="noopener noreferrer nofollow" href="https://cloud.githubusercontent.com/assets/1202528/9726595/14a1fdb0-55c3-11e5-88da-0052dfcd2727.png"><img src="https://cloud.githubusercontent.com/assets/1202528/9726595/14a1fdb0-55c3-11e5-88da-0052dfcd2727.png" alt="2015-09-08_00-45-07" style="max-width: 100%;"></a></p>
<p dir="auto">And here is the red underlines in the RouteConfig.</p>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="https://cloud.githubusercontent.com/assets/1202528/9726594/121521a8-55c3-11e5-84bc-b3815ee02bed.png"><img src="https://cloud.githubusercontent.com/assets/1202528/9726594/121521a8-55c3-11e5-84bc-b3815ee02bed.png" alt="2015-09-08_00-44-48" style="max-width: 100%;"></a></p>
<p dir="auto">I'm a bit puzzled about this one. I think it appeared on alpha 34. I didn't upgrade by then.<br>
Now I updated to angular alpha35, "systemjs-builder": "^0.13","systemjs": "^0.18.10".</p>
<p dir="auto">With a simple route config  like</p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="@RouteConfig([
    {path: '/', redirectTo:'/login'},
    {path: '/login', component: LoginView, as:'login'}
])"><pre class="notranslate">@<span class="pl-v">RouteConfig</span><span class="pl-kos">(</span><span class="pl-kos">[</span>
    <span class="pl-kos">{</span><span class="pl-c1">path</span>: <span class="pl-s">'/'</span><span class="pl-kos">,</span> <span class="pl-c1">redirectTo</span>:<span class="pl-s">'/login'</span><span class="pl-kos">}</span><span class="pl-kos">,</span>
    <span class="pl-kos">{</span><span class="pl-c1">path</span>: <span class="pl-s">'/login'</span><span class="pl-kos">,</span> <span class="pl-c1">component</span>: <span class="pl-v">LoginView</span><span class="pl-kos">,</span> <span class="pl-c1">as</span>:<span class="pl-s">'login'</span><span class="pl-kos">}</span>
<span class="pl-kos">]</span><span class="pl-kos">)</span></pre></div>
<p dir="auto">I got a compilation error:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="app/app.ts(56,14): error TS2345: Argument of type '({ path: string; redirectTo: string; } | { path: string; component: typeof LoginView; as: string;...' is not assignable to parameter of type 'List&lt;RouteDefinition&gt;'.
  Types of property 'push' are incompatible.
    Type '(...items: ({ path: string; redirectTo: string; } | { path: string; component: typeof LoginView; ...' is not assignable to type '(...items: RouteDefinition[]) =&gt; number'.
      Types of parameters 'items' and 'items' are incompatible.
        Type '{ path: string; redirectTo: string; } | { path: string; component: typeof LoginView; as: string; ...' is not assignable to type 'RouteDefinition'.
          Type '{ path: string; component: typeof LoginView; as: string; }' is not assignable to type 'RouteDefinition'.
            Types of property 'component' are incompatible.
              Type 'typeof LoginView' is not assignable to type 'Type | ComponentDefinition'.
                Type 'typeof LoginView' is not assignable to type 'ComponentDefinition'."><pre class="notranslate"><code class="notranslate">app/app.ts(56,14): error TS2345: Argument of type '({ path: string; redirectTo: string; } | { path: string; component: typeof LoginView; as: string;...' is not assignable to parameter of type 'List&lt;RouteDefinition&gt;'.
  Types of property 'push' are incompatible.
    Type '(...items: ({ path: string; redirectTo: string; } | { path: string; component: typeof LoginView; ...' is not assignable to type '(...items: RouteDefinition[]) =&gt; number'.
      Types of parameters 'items' and 'items' are incompatible.
        Type '{ path: string; redirectTo: string; } | { path: string; component: typeof LoginView; as: string; ...' is not assignable to type 'RouteDefinition'.
          Type '{ path: string; component: typeof LoginView; as: string; }' is not assignable to type 'RouteDefinition'.
            Types of property 'component' are incompatible.
              Type 'typeof LoginView' is not assignable to type 'Type | ComponentDefinition'.
                Type 'typeof LoginView' is not assignable to type 'ComponentDefinition'.
</code></pre></div>
<p dir="auto">The only work around I found was to provide my own router.d.ts file with the following fix:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="interface RouteDefinition {

     path: string;

     component?: Type | ComponentDefinition | any; //&lt;= added any here

     loader?: Function;

     redirectTo?: string;

     as?: string;

     data?: any;
  }"><pre class="notranslate"><code class="notranslate">interface RouteDefinition {

     path: string;

     component?: Type | ComponentDefinition | any; //&lt;= added any here

     loader?: Function;

     redirectTo?: string;

     as?: string;

     data?: any;
  }
</code></pre></div>
<p dir="auto">The LoginView  view has nothing special</p>