为什么不是';是否总是需要导出才能从typescript命名空间导出成员?

为什么不是';是否总是需要导出才能从typescript命名空间导出成员?,typescript,Typescript,我对typescript名称空间中的导出感到困惑。从我的阅读和测试中,如果没有从名称空间导出值定义,那么它在该名称空间之外是不可见的,除非我查看的是express package index.d.ts文件,它没有导出json,但这是可行的: import * as express from 'express'; const app = express(); app.use(express.json()); expressindex.d.ts(为简洁起见编辑): 注意在.d.ts文件中,var-

我对typescript名称空间中的导出感到困惑。从我的阅读和测试中,如果没有从名称空间导出值定义,那么它在该名称空间之外是不可见的,除非我查看的是express package index.d.ts文件,它没有导出json,但这是可行的:

import * as express from 'express';
const app = express();
app.use(express.json());
express
index.d.ts
(为简洁起见编辑):

注意在.d.ts文件中,
var-json
不是
export-var-json
,但有些东西是导出的,比如
export-function-Router

为什么访问
express.json
有效,既然有效,为什么需要导出
功能路由器

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;