Declaration merging hija TypeScript li jgħaqqad għadd diklarazzjonijiet multipli bl-istess isem f'definizzjoni waħda. Interfaces, namespaces, u xi konstrutti oħrajn jigħaqqdu awtomatikament.
Interface merging
interface Box { : ; }
{ : ; }
Declaration merging hija TypeScript li jgħaqqad għadd diklarazzjonijiet multipli bl-istess isem f'definizzjoni waħda. Interfaces, namespaces, u xi konstrutti oħrajn jigħaqqdu awtomatikament.
interface Box { : ; }
{ : ; }
Hekk kif tiddikjara types għal libreriji jew globals li ma tmilkx:
// Add a custom property to Express's Request
declare global {
namespace Express {
interface Request { user?: { id: string }; } // merges into Express.Request
}
}
request.user; // ✅ now typed everywhere
// Augment a module
declare module "some-lib" {
interface Options { newOption: boolean; }
}
Biex il-Request/Options tal-librerija hija interface, id-dikjarazzjoni tiegħek tgħaqqad fih minflok ma tiġi f'konflitt — li ting-permezzak b'mod sigur tiddikjara tistiexxi types li ma tistax teditja.
function greet() {}
namespace greet { export const version = "1.0"; }
greet.version; // "1.0" — namespace merged onto the function
type ma jistax jagħmel dantype A = { x: number };
type A = { y: number }; // ❌ Error: duplicate identifier
Type aliases huma uniċi; biss interfaces (u namespaces) jigħaqqdu — raġuni ewlenija biex tuża interface għal API shapes estensibli u pubbliċi.
Declaration merging hija l-mekkaniżmu wara module augmentation — tistiexxi Express requests, iżżid għal window, customize types tal-librerija, theming systems.
Hija għarfien essenzjali għat-typing ta' apps reali fejn trid tadatta types li ma tmilkx, mingħajr fork.
Librerija ta' mistoqsijiet ta' intervisti tal-IT b'tweġibiet dettaljati — minn Junior sa Senior.
Iddona