请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

请问您是怎么找到Requet 的

  1. express 这个为啥不是 declare module ‘express’ 而是
declare namespace e {
	// ...
} 
export = e
  1. declare global 是干啥用的
declare global {
    namespace Express {
        interface Request { }
        interface Response { }
        interface Application { }
    }
}
  1. 为啥要找到 Express 进行融合,直接融合 e 为啥不行(e 的 Request 是 extends Express.Request 啊),这个地方能找描述文件的过程能描述的更仔细一些吗,我如果自己找怎么看依赖关系
declare namespace e {
 interface Request {
    teacherName: string;
  }
}

正在回答 回答被采纳积分+3

1回答

Dell 2020-04-09 00:15:41
  1. 定义的并非是module,而是一个全局的namespace

  2. global 相当于node 下的window,表示全局变量

  3. namespace 后面跟的是全局的名字,express 中的 request,所以名字要是express,如果你写成e,变成了 e 中的request

1 回复 有任何疑惑可以回复我~
  • 提问者 诺巴蒂 #1
    import express, { Request, Response, NextFunction } from 'express';
    这个地方,我用编辑器点 Request ,进入的是 e 下的 Request ,然后再往上找,才会找到 express 的 Request
    我的意思是,既然这是个继承,我为啥不能直接覆盖入口 e.Request,而且
    import express, { Request, Response, NextFunction } from 'express';
    这样用就可以,但是 直接 用 e.Request 就不行,这是为啥
    回复 有任何疑惑可以回复我~ 2020-04-11 20:26:22
  • 提问者 诺巴蒂 #2
    import express, { Request, Response, NextFunction } from 'express';
    我 command 点 Request 进入的 e.Request 不是 express.Request
     e.Request 继承 express.Request
    是这个过程吧
    回复 有任何疑惑可以回复我~ 2020-04-11 20:28:38
  • 提问者 诺巴蒂 #3
    按照您描述文件那章节的写法,应该是
    declare module express {
      namespace e {
         export interface Request {}
         export interface Response {}
      }
      export=e
    }
    现在这种写法,我没太看懂,既没有 declare module,里面的 Request 也没有 export 出去,但是就能用了
    回复 有任何疑惑可以回复我~ 2020-04-11 20:39:26
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信