说说Typescript中命名空间和模块的区别
# 是什么
- 命名空间: namespace 定义一个对象,对象中包含了export 声明的对外暴露的变量或者方法
- 模块: 代码文件顶层带有import或者export的声明,就是模块
# 模块
// 1.js
export name = 'fang'
// 2.js
import { name } from './1.js'
# 命名空间
namespace mySpace {
export name = 'fang'
}
mySpace.name
# 区别
- 命名空间是一个全局下的js对象,存在命名污染, 难以识别依赖关系
- 模块可以声明依赖
- 正常项目中不写命名空间, 在d.ts中标记库类型时使用
# 原理
# FAQ
// https://api.git123.cn/proxy/image?url=
上次更新: 2021/12/19, 18:05:42