Sloučení deklarací je proces, kdy TypeScript kombinuje více deklarací se stejným názvem do jedné definice. Rozhraní, jmenné prostory a některé další konstrukty se slučují automaticky.
Sloučení rozhraní
interface Box { : ; }
{ : ; }
Sloučení deklarací je proces, kdy TypeScript kombinuje více deklarací se stejným názvem do jedné definice. Rozhraní, jmenné prostory a některé další konstrukty se slučují automaticky.
interface Box { : ; }
{ : ; }
Takto přidáte typy knihovnám nebo globálním prvkům, které nevlastníte:
// 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; }
}
Protože Request/Options knihovny je interface, vaše deklarace se s ním slučuje místo konfliktu — umožní vám bezpečně rozšířit typy, které nemůžete upravovat.
function greet() {}
namespace greet { export const version = "1.0"; }
greet.version; // "1.0" — namespace merged onto the function
type nemůže dělattype A = { x: number };
type A = { y: number }; // ❌ Error: duplicate identifier
Aliasy typů jsou jedinečné; pouze rozhraní (a jmenné prostory) se slučují — klíčový důvod, proč používat interface pro rozšiřitelné veřejné API tvary.
Sloučení deklarací je mechanismus za augmentací modulů — rozšiřování požadavků Express, přidávání do window, přizpůsobení typů knihoven, systémy motivů.
Je to zásadní znalost pro psaní typů reálných aplikací, kde musíte přizpůsobit typy, které neovládáte, aniž byste je rozvětvovali.
Knihovna IT otázek k pohovoru s podrobnými odpověďmi — od Junior po Senior.
Přispět