ઘોષણા મર્જીંગ એ TypeScript સમાન નામ સાથે બહુવિધ ઘોષણાઓને એક વ્યાખ્યામાં સંયોજિત કરવા છે. ઇન્ટરફેસ, નેમસ્પેસ અને અન્ય કેટલાક બાંધકામો આપોઆપ મર્જ થાય છે.
ઇન્ટરફેસ મર્જીંગ
interface Box { width: number; }
interface { : ; }
ઘોષણા મર્જીંગ એ TypeScript સમાન નામ સાથે બહુવિધ ઘોષણાઓને એક વ્યાખ્યામાં સંયોજિત કરવા છે. ઇન્ટરફેસ, નેમસ્પેસ અને અન્ય કેટલાક બાંધકામો આપોઆપ મર્જ થાય છે.
interface Box { width: number; }
interface { : ; }
લાઇબ્રેરીઓ અથવા વૈશ્વિક ટાઇપ્સ માટે કે જેનો તમે માલિક નથી:
// 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; }
}
લાઇબ્રેરીના Request/Options કારણે interface છે, તમારી ઘોષણા તેમાં મર્જ થાય છે - તમે સુરક્ષિતપણે વિસ્તૃત પ્રકારો કરી શકો છો જેને તમે સંપાદિત કરી શકતા નથી.
function greet() {}
namespace greet { export const version = "1.0"; }
greet.version; // "1.0" — namespace merged onto the function
type આ કરી શકે નહીંtype A = { x: number };
type A = { y: number }; // ❌ Error: duplicate identifier
ટાઇપ એલિયાસ અનન્ય છે; ફક્ત interfaces (અને namespaces) મર્જ થાય છે — વિસ્તૃત જાહેર API આકૃતિઓ માટે interface નો ઉપયોગ કરવાનું મુખ્ય કારણ.
ઘોષણા મર્જીંગ મોડ્યુલ વર્ધન પાછળ મિકેનિઝમ છે — Express વિનંતીઓ વધારવી, window માં ઉમેરણ કરવી, લાઇબ્રેરી પ્રકારો કસ્ટમાઇઝ કરવા, થીમીંગ સિસ્ટમ.
વાસ્તવિક એપ્લિકેશનોના પ્રકાર માટે તે આવશ્યક જ્ઞાન છે જ્યાં તમે પ્રકારોને અનુકૂલ કરવા જોઈએ જેનો તમે નિયંત્રણ કરતા નથી.