我对typescript命名空间中的export
感到困惑。从我的阅读和测试,如果没有从命名空间导出值定义,它在该命名空间之外是不可见的,除了我正在查看快递包index.d.ts文件并且它不导出json,并且但这有效:
import * as express from 'express';
const app = express();
app.use(express.json());
快递index.d.ts
(为简洁起见编辑):
import * as bodyParser from "body-parser";
import serveStatic = require("serve-static");
import * as core from "express-serve-static-core";
declare function e(): core.Express;
declare namespace e {
var json: typeof bodyParser.json;
export function Router(options?: RouterOptions): core.Router;
}
export = e;
请注意.d.ts文件中var json
不是export var json
,但有些内容会像export function Router
一样导出。
为什么访问express.json
是有效的,既然如此,为什么需要导出function Router
?