Union (A | B) inamaanisha "A au B." Intersection (A & B) inamaanisha "A na B kwa wakati mmoja."
ts
= | | ;
: = ;
() { }
Union (A | B) inamaanisha "A au B." Intersection (A & B) inamaanisha "A na B kwa wakati mmoja."
= | | ;
: = ;
() { }
function format(x: string | number) {
// x.toFixed(2); // ❌ toFixed doesn't exist on string
if (typeof x === "number") return x.toFixed(2); // ✅ narrowed to number
return x.toUpperCase(); // ✅ here it's a string
}
Hadi utakapokosa union, unaweza tu kufikia wanachama walio nao kila mwanachama wa union — mkusanyaji anakukamatia.
type Name = { name: string };
type Age = { age: number };
type Person = Name & Age; // must have BOTH name and age
const p: Person = { name: "Ann", age: 30 }; // both required
Intersections ni nzuri kwa kutunga/kuchanganya miundo ya kitu (mfano kuongeza props kwa aina iliyopo).
Unions huigiza "moja kati ya uwezekano kadhaa" — msingi wa uundaji salama wa hali (mfano unions zilizotofautiana kwa hali ya kupunguza), kuzamia kwa chaguo na aina zenye thamani tupu (T | null).
Intersections hutunga aina pamoja.
Kwa pamoja, wanafanya mfumo wa aina wa TypeScript uwe na kujieleza kiasi cha kuakisi data halisi kwa usahihi.