将相关代码组织在一起的方式。出现在 ES 模块诞生之前,作为 TypeScript 自己的模块格式而发明的。但是,自从有了 ES 模块,官方已经不推荐使用 namespace 了
namespace 用来建立一个容器,内部的所有变量和函数,都必须在这个容器里面使用:
namespace Utils {
const PI = 3.14; // 不 export → 命名空间内部才能用,外面用不了
export function circle(r: number) { return PI * r * r; }
}
Utils.circle(5); // ✔️
Utils.PI; // ❌ 报错namespace 同名的会自动合并