TypeScript中的命名空间与模块关键字

时间:2016-12-01 22:37:58

标签: typescript module namespaces

我想扩展Express'Request界面以包含用户信息。这是常见的,之前已经在这里提出过,所以我已经能够通过以下方式完成它:

import { IHttpUser } from './user.interface';


declare module "express" {
    export interface Request{
        user?: IHttpUser;
    }
}

太棒了 - 这很有效。无需使用任何导入,我可以随时随地使用req.user,并为其输入信息。

根据我的理解使用module并不是推荐的方法。我应该使用namespace。所以我希望能够去:

import { IHttpUser } from './user.interface';

declare namespace Express {
    export interface Request{
        user?: IHttpUser;
    }    
}

...但是我不能,因为如果你在顶部有一个import,这将不会被全局提供(我道歉,我不知道这里的正确术语)。< / p>

那么“正确”的方法是什么?它就像我拥有它一样,但是因为我应该转向使用namespace我想学习那种方式。

0 个答案:

没有答案