9
TypeScriptで&
演算子の定義を見つけるのが苦労しています。私は最近、次のコードに遭遇していますTypescript&operator
type IRecord<T> = T & TypedMap<T>;
は、その演算子は何をするのか、そしてどのようにそれが労働組合のタイプ|
は異なるのですか?
TypeScriptで&
演算子の定義を見つけるのが苦労しています。私は最近、次のコードに遭遇していますTypescript&operator
type IRecord<T> = T & TypedMap<T>;
は、その演算子は何をするのか、そしてどのようにそれが労働組合のタイプ|
は異なるのですか?
これは、言語仕様の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
ので、および/またはb
。 ab
がタイプB
の場合にのみ、b
に割り当てることができました。
あなたが共有したコードは、this comment on GitHubである可能性があります。これには交差点の種類が記載されています。