Typescript: extend express Объект запроса на основе промежуточного программного обеспечения - PullRequest
0 голосов
/ 28 марта 2020

У меня есть некоторые express промежуточные программы, которые я использую в своем приложении express, написанном на Typescript. Эти промежуточные программы обычно добавляют некоторое свойство к объекту Request, поэтому для компиляции Typescript я использую:

declare global {
    namespace Express {
        export interface Request {
            client: Client;
        }
    }
}

Чтобы добавить свойство client к express Request объект. Проблема в том, что это добавляет свойство client ко всем моим Request объектам, не важно, какое промежуточное программное обеспечение я добавляю, компилятор Typescript совершенно счастлив, когда я получаю доступ к свойствам, даже когда промежуточное программное обеспечение не добавляется.

После тщательного поиска я могу найти только примеры того, как добавить свойства к объекту Request глобально, не основываясь на промежуточном программном обеспечении. Можно ли добавить свойства к объекту Request в зависимости от добавленного промежуточного программного обеспечения? Поэтому я получаю сообщение об ошибке при попытке получить доступ к свойству, где не добавлено соответствующее промежуточное программное обеспечение.

Если нет, то как это обычно обрабатывается в express с Typescript, просто проверяя свойства на null, чтобы убедиться, что они существуют? ? Это ограничение Typescript или express?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...