Bashkimi i deklaratave është TypeScript që kombinon shumë deklarata me të njëjtin emër në një përkufizim të vetëm. Ndërfaqet, hapësirat e emrave dhe disa konstrukte të tjera bashkohen automatikisht.
Bashkimi i ndërfaqeve
interface { : ; }
{ : ; }
Bashkimi i deklaratave është TypeScript që kombinon shumë deklarata me të njëjtin emër në një përkufizim të vetëm. Ndërfaqet, hapësirat e emrave dhe disa konstrukte të tjera bashkohen automatikisht.
interface { : ; }
{ : ; }
Këtu është se si shtoni lloje në biblioteka ose globale që nuk zotëroni:
// 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; }
}
Sepse Request/Options i bibliotekës është një interface, deklarata juaj bashkohet në të në vend që të përplasen — duke ju lejuar të zgjeroni në mënyrë të sigurt lloje që nuk mund të redaktoni.
function greet() {}
namespace greet { export const version = "1.0"; }
greet.version; // "1.0" — namespace merged onto the function
type nuk mund ta bëjë këtëtype A = { x: number };
type A = { y: number }; // ❌ Error: duplicate identifier
Aliasët e llojeve janë unike; vetëm ndërfaqet (dhe hapësirat e emrave) bashkohen — një arsye kyçe për të përdorur interface për forma API publike të zgjérueshme.
Bashkimi i deklaratave është mekanizmi pas zmadhimit të modulit — zgjerimi i kërkesave të Express, shtimi në window, përshtatja e llojeve të bibliotekës, sistemeve të temave.
Është njohuri thelbësore për tipizimin e aplikacioneve reale ku duhet të përshtatni lloje që nuk kontrolloni, pa i ndarë ato.