Spajanje deklaracija je TypeScript kombiniranje više deklaracija s istim imenom u jednu definiciju. Sučelja, nazivni prostori i neki drugi konstrukti se spajaju automatski.
Spajanje sučelja
interface Box { : ; }
{ : ; }
Spajanje deklaracija je TypeScript kombiniranje više deklaracija s istim imenom u jednu definiciju. Sučelja, nazivni prostori i neki drugi konstrukti se spajaju automatski.
interface Box { : ; }
{ : ; }
Ovako dodajete tipove knjižnicama ili globalima koje ne posjedujete:
// 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; }
}
Zbog toga što je Request/Options knjižnice interface, vaša deklaracija se spaja u njega umjesto sukoba — omogućuje vam sigurno proširenje tipova koje ne možete uređivati.
function greet() {}
namespace greet { export const version = "1.0"; }
greet.version; // "1.0" — namespace merged onto the function
type ne može ovo učinititype A = { x: number };
type A = { y: number }; // ❌ Error: duplicate identifier
Alijasi tipova su jedinstveni; samo sučelja (i nazivni prostori) se spajaju — ključni razlog za korištenje interface za proširive oblike javnog API-ja.
Spajanje deklaracija je mehanizam iza povećanja modula — proširenja zahtjeva Express, dodavanja window, prilagodbe tipova knjižnica, sustava tema.
To je bitno znanje za tipiziranje stvarnih aplikacija gdje trebate prilagoditi tipove koje ne kontrolirate, bez njihova vidljenja.
Knjižnica IT pitanja za razgovore za posao s detaljnim odgovorima — od Juniora do Seniora.
Doniraj