title: What classes do <T> and <U> represent in Angular 2?
body: <p>I have been reading the <a href="https://angular.io/docs/ts/latest/api" rel="nofollow">Angular 2 TypeScript docs</a> and I am running into a lot of these two classes. Would someone please expound on what they are?</p>
  
  <p>An example code from the <a href="https://angular.io/docs/ts/latest/api/core/index/QueryList-class.html" rel="nofollow">QueryList api</a> docs is:</p>
  
  <pre><code>class QueryList {
      changes : Observable&lt;any&gt;
      length : number
      first : T
      last : T
      map(fn: (item: T, index: number, array: T[]) =&gt; U) : U[]
      filter(fn: (item: T, index: number, array: T[]) =&gt; boolean) : T[]
      reduce(fn: (prevValue: U, curValue: T, curIndex: number, array: T[]) =&gt;      U, init: U) : U
      forEach(fn: (item: T, index: number, array: T[]) =&gt; void) : void
      some(fn: (value: T, index: number, array: T[]) =&gt; boolean) : boolean
      toArray() : T[]
      toString() : string
      reset(res: Array&lt;T|any[]&gt;) : void
      notifyOnChanges() : void
      setDirty()
      dirty 
  }
  </code></pre>