/*
其实前面一些都是废话,因为都和C#类似.从模块开始就需要深入的去理解了
文档反复声明了 内部模块现在称做 命令空间 外部模块称为 模块
模块在其自身的作用域里执行,而不是在全局作用域里,也就是说模块内的变量函数类等在模
块外部是不可见的.
模块是自声明的,两个模块之间的关系是通过文件级别上使用 imports exports建立
模块使用模块加载器去导入其它的模块,像CommonJS、Require.JS 作用是执行此模块代码前
去查找并执行这个模块的做有依赖
*/ /*
说了这么多,什么才是一个模块? 上面的话比较官方,通常我们的模块是一个ts文件,但是也
不是说一个文件就是一个真正意义上的模块,前提是文件中包含任何顶级的import或者export
才是一个模块
*/ /*
从最基础的导出开始
在一个模块中,我们要将需要被访问访问的 类、函数等使用 export关键字导出
*/
interface interfaceExport { };
class classExport { };
//进行导出 如果对名称不满意可以使用 as 语法重命名 比如 classExport as newName export { interfaceExport, classExport as newClassName}; /*
当我们需要在另一个模块中只导出其它模块的部分内容, 可以使用重新导出
语法 exprot from '模块名称' 直译就是导出一个东西,但是它不是我的,它from自xx模块
export { interfaceExport : newinterfaceExport } from "./模块";
export * from "模块名称" * 代表所有内容
* 默认导出,模块可以有一个且只能有一个默认导出.default 的好处在哪里?
对默认的导出在导入时可以忽略其名称 语法
export default
*/ /*
导入也是非常简单的,使用 import 可以轻松进行导入,格式 import {名称} from '模块'
* 如果模块内导出的太多, 一个一个的进行improt是非常麻烦的可以使用
import * as NewName from '模块'
意思是导入'模块'中所有被导出的,NewName做为它们的根
*/ /*
需要嗨皮的是,导入是懒加载的.也就是只有在使用的时候才去真正的加载,对于一些导入了
但是并没有进行使用的是不会去加载的,这无疑提高了性能
*/ //简单提一下,文件可以定义成.D.TS文件,导出的时候可以自定义名称 declare model "Name"{ export ....}
/*
相信对于命名空间NameSpaced大家都很熟悉,可以很方便的管理我们的类.现在TypeScript中
也有了命名空间
一般来说命名空间是无需使用的,因为我们有模块的概念,一个文件就是一个模块,一般来说这
是够用的
但是随着功能越来越多放到一个文档是不合适的,我们需要拆分成不同的文件.这时候使用命
名空间管理是最佳选择
*/
--- 命名空间.ts
namespace testNameSpace {
export function fun1() { };
}
上面是命名空间.ts下的内容,里面有一个命名空间 testNameSpace ---命名空间2.ts
namespace testNameSpace {
export function fun2() { };
}
然后在命名空间2.ts下继续在testNameSpace命名空间下添加方法 ---test.ts
//使用testNameSpace空间下的fun1方法
testNameSpace.fun1();
实际上命名空间是一个普通的JavaScript对象,并且可以在多个文件使用,不需要导入。这听起来就是全局的,所以命名空间是不被推荐使用的,模块才是真爱

最新文章

  1. 从零开始编写自己的C#框架(19)——Web层后端权限模块
  2. Namesilo 管理域名教程
  3. 使用spring aspect控制自定义注解
  4. 第十二课:Sizzle引擎详解
  5. Linux中用st_mode判断文件类型
  6. JavaScript 点击图片放大功能
  7. HDU 1622
  8. mfc extention dll 與 normal dll 的區別
  9. python 内存数据库与远程服务
  10. Asp.net core 启动流程
  11. Kivy 中文教程 实例入门 简易画板 (Simple Paint App):1. 自定义窗口部件 (widget)
  12. git diff命令详解
  13. 响应式布局与bootstrap框架
  14. 精读JavaScript模式(一)
  15. 通过api管理grafana
  16. 剑指offer4
  17. ARM的Trust Zone技术
  18. windows7 asp.net发布IIS 拒绝访问 解决方法
  19. [LeetCode&Python] Problem 832. Flipping an Image
  20. 【探路者】Beta发布用户使用报告

热门文章

  1. bzoj1562
  2. ASP.NET 共用类库1
  3. 自己遇到的Android虚拟机出现的错误及解决方法【不断更新】
  4. 在fmri研究中,cca的应用历史
  5. 使用solrj操作solr索引库
  6. iwpriv工具通过ioctl动态获取相应无线网卡驱动的private_args所有扩展参数
  7. 新浪使用Redis
  8. 在Ubuntu下卸载Apache
  9. Oracle归档方式设置
  10. 限制su权限