У меня есть некоторые 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?