title: what does typescript syntax "<SomeClass>" as a parameter mean?
body: <p>I was reading angular2 code and I found some confusing syntax for me.
  The full code is below.(from <a href="https://github.com/domfarolino/angular2-login-seed" rel="nofollow noreferrer">https://github.com/domfarolino/angular2-login-seed</a>)</p>
  
  <pre><code>import { Injectable, Inject } from '@angular/core';
  //import { Control } from '@angular/common';
  import { Http, Response, Headers, RequestOptions, RequestOptionsArgs } from '@angular/http';
  import { Observable } from 'rxjs/Observable';
  import 'rxjs/add/observable/throw';
  
  /**
   * Import interfaces that service depends on
   */
  import { User } from './user';
  
  @Injectable()
  export class UserService {
      constructor (private http: Http, @Inject('apiBase') private _apiBase: string) {
  
      }
  
      private _loginApi = this._apiBase + '/authorize/local';
      private _logoutApi = this._apiBase + '/logout';
      private _authenticatedApi = this._apiBase + '/api/authenticated';
      private _registerApi = this._apiBase + '/api/users/register';
      private _userExistsApi = this._apiBase + '/api/users/exists';
  
      login(user) {
          let body = JSON.stringify(user);
          let headers = new Headers();
          headers.append('Content-Type', 'application/json');
  
          return this.http.post(this._loginApi, body, &lt;RequestOptionsArgs&gt; {headers: headers, withCredentials: true})
                          .map((res: Response) =&gt; res)
                          .catch(this.handleError);
      }
  
      authenticated() {
          return this.http.get(this._authenticatedApi, &lt;RequestOptionsArgs&gt; {withCredentials: true})
                          .map((res: Response) =&gt; res.json())
                          .catch(this.handleError);
      }
  
      logout() {
          return this.http.get(this._logoutApi, &lt;RequestOptionsArgs&gt; {withCredentials: true})
                          .map((res: Response) =&gt; res.json())
                          .catch(this.handleError);
      }
  
      register(user) {
          let body = JSON.stringify(user);
          let headers = new Headers();
          headers.append('Content-Type', 'application/json');
  
          return this.http.post(this._registerApi, body, &lt;RequestOptionsArgs&gt; {headers: headers, withCredentials: true})
                          .map((res: Response) =&gt; res)
                          .catch(this.handleError);
      }
  
      getUsers() {
          return this.http.get(this._apiBase + "/api/users?limit=5&amp;desc=true", &lt;RequestOptionsArgs&gt; {withCredentials: true})
                      .map((res: Response) =&gt; res.json())
                      .catch(this.handleError);
      }
  
      getMe() {
          return this.http.get(this._apiBase + '/api/users/me/', &lt;RequestOptionsArgs&gt; {withCredentials: true})
                      .map((res: Response) =&gt; res.json().me)
                      .catch(this.handleError);
      }
  
      private handleError (error: Response) {
          // in a real world app, we may send the server to some remote logging infrastructure
          // instead of just logging it to the console
          return Observable.throw(error || "Server Error");
      }
  }
  </code></pre>
  
  <p>and I can't find out what below code as a parameter means.</p>
  
  <pre><code>&lt;RequestOptionsArgs&gt; {headers: headers, withCredentials: true}
  </code></pre>
  
  <p>Is there anyone can give me an idea?</p>