请问您是怎么找到Requet 的

来源:5-3 扩展解决 Express 的类型定义文件问题

诺巴蒂

2020-04-07

  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;
  }
}
写回答

1回答

Dell

2020-04-09

  1. 定义的并非是module,而是一个全局的namespace

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

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

1
3
诺巴蒂
按照您描述文件那章节的写法,应该是 declare module express { namespace e { export interface Request {} export interface Response {} } export=e } 现在这种写法,我没太看懂,既没有 declare module,里面的 Request 也没有 export 出去,但是就能用了
2020-04-11
共3条回复

专为小白设计的TypeScript入门课

Dell老师专为TypeScript小白打造的,全栈式教学TS入门课程

2213 学习 · 504 问题

查看课程