2015-11-23 9 views
9

TypeScriptで&演算子の定義を見つけるのが苦労しています。私は最近、次のコードに遭遇していますTypescript&operator

type IRecord<T> = T & TypedMap<T>; 

は、その演算子は何をするのか、そしてどのようにそれが労働組合のタイプ|は異なるのですか?

答えて

18

これは、言語仕様のIntersection Types部分のようです。特に、&intersection type literalと思われます。それは何のために:

交差型は、複数の型を同時に持つ値を表します。交差タイプA & Bの値は、タイプAとタイプBの両方の値です。交差タイプは、交差タイプリテラル(セクション3.8.7)を使用して記述されます。

仕様は、より良い行動を理解するために役立つスニペットを提供するために行く:タイプの両方がAとタイプB、我々はaに割り当てることができますです

interface A { a: number } 
interface B { b: number } 

var ab: A & B = { a: 1, b: 1 }; 
var a: A = ab; // A & B assignable to A 
var b: B = ab; // A & B assignable to B 

abので、および/またはbabがタイプBの場合にのみ、bに割り当てることができました。

あなたが共有したコードは、this comment on GitHubである可能性があります。これには交差点の種類が記載されています。