2016-08-11 8 views
0

私はAngular 2 TypeScript docsを読んでいて、私はこれらの2つのクラスの多くを実行しています。誰かが何であるか解説してくれますか?<T>と<U>のクラスは角2で表されますか?

QueryList apiドキュメントからのサンプルコードは、次のとおり

class QueryList { 
    changes : Observable<any> 
    length : number 
    first : T 
    last : T 
    map(fn: (item: T, index: number, array: T[]) => U) : U[] 
    filter(fn: (item: T, index: number, array: T[]) => boolean) : T[] 
    reduce(fn: (prevValue: U, curValue: T, curIndex: number, array: T[]) =>  U, init: U) : U 
    forEach(fn: (item: T, index: number, array: T[]) => void) : void 
    some(fn: (value: T, index: number, array: T[]) => boolean) : boolean 
    toArray() : T[] 
    toString() : string 
    reset(res: Array<T|any[]>) : void 
    notifyOnChanges() : void 
    setDirty() 
    dirty 
} 

答えて

1

は、それらがジェネリックです。それはあなたがTのために選んだものは何でも任意の型を取るが、まだ機能を通じて、そのタイプを強制することができます関数を記述するための方法は、(T全体の方法のままにあり、単純だ

TypeScript - Generics

:彼らは、任意の型を表すことができ関数を介して)。

+0

'T'は汎用クラス' QueryList'の型パラメータですが、なんらかの理由でAPIドキュメントには表示されていません。 –

+0

'U'はジェネリック関数' map'と 'reduce'の唯一の型パラメータでなければなりませんが、再び示されていません。 –

+0

それは 'any'型に似ていますが、最初に割り当てた後は他の型をとることはできません。それでは「U」はどうですか? – davejoem

関連する問題