Как работает type augmentation в TypeScript?

Senior
246 просмотров
AFK Offer AI

Type augmentation (declaration merging) позволяет добавлять поля к существующим типам. Расширение Express Request: declare global { namespace Express { interface Request { user?: JwtPayload; requestId: string } } }. Расширение библиотечных типов создаёт .d.ts файл с declare module. Это стандартный паттерн для: добавления user к req в Express, расширения process.env, добавления методов к String прототипу. Должен быть в файле с export {} чтобы TypeScript воспринял как модуль.

Следующий вопрос

Как устроены node_modules и что такое hoisting?