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.
Maktaba ya maswali ya mahojiano ya IT yenye majibu ya kina — kutoka Junior hadi Senior.
Changia