TipScript'te &
operatörünün tanımını bulmak için uğraşıyorum. Geçenlerde aşağıdaki kodla rastlamak: Typescript & operator
type IRecord<T> = T & TypedMap<T>;
o operatörün ne yapar
ve nasıl birlik tip|
farklıdır?
TipScript'te &
operatörünün tanımını bulmak için uğraşıyorum. Geçenlerde aşağıdaki kodla rastlamak: Typescript & operator
type IRecord<T> = T & TypedMap<T>;
o operatörün ne yapar
ve nasıl birlik tip|
farklıdır?
Bu, Dil Belirtiminin Intersection Types bölümünden alınmış gibi görünüyor. Spesifik olarak, &
, intersection type literal olarak görünür. Ne olduğu gibi:
Kesişim türleri, aynı anda birden çok türe sahip değerleri temsil eder. A & B kesişim değerinin her ikisi de A tipi ve B tipi olan bir değerdir. Kesişim türleri, kesişim türü değişmezleri kullanılarak yazılır (bölüm 3.8.7).
Spec daha iyi davranışlarını anlamak için yararlı bir pasajı sunmaya devam ediyor: tip hem A
ve tip B
ait, biz a
atayabilirsiniz olduğunu
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
Çünkü ve/veya b
. ab
yalnızca B
türündeyse, yalnızca b
'a atayabiliriz.
Paylaştığınız kod, Kesişim Türlerinden söz eden this comment on GitHub'dan olabilir.