打字稿:扩展基于中间件的快速请求对象

时间:2020-03-28 06:24:49

标签: typescript express

我有一些express中间件,正在用Typescript编写的快速应用程序中使用。这些中间件通常会为Request对象添加一些属性,因此,为了使Typescript能够编译,我正在使用:

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

要将client属性添加到快速Request对象。问题在于这会将client属性添加到我的所有Request对象中,无论添加什么中间件都没有问题,即使没有添加中间件,当我访问属性时,Typescript编译器也会非常满意。

经过大量搜索之后,我只能找到一些示例,这些示例说明如何全局(而不是基于中间件)向Request对象添加属性。是否可以根据添加的中间件向Request对象添加属性?因此,当尝试访问未添加适当的中间件的属性时,会出现错误。

如果没有,通常用Typescript在express中如何处理,只是对属性进行空检查以确保它们存在?这是打字稿还是明示限制?

0 个答案:

没有答案
相关问题