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

TypeScript 素描 - 模块的更多相关文章

  1. TypeScript 素描 - 模块解析、声明合并

    模块解析 模块解析有两种方式 相对方式  也就是以/或 ./或-/开头的,比如import jq  from "/jq" 非相对方式  比如 import model  from ...

  2. TypeScript 素描 - 模块、命名空间

    /* 其实前面一些都是废话,因为都和C#类似.从模块开始就需要深入的去理解了 文档反复声明了 内部模块现在称做 命令空间 外部模块称为 模块 模块在其自身的作用域里执行,而不是在全局作用域里,也就是说 ...

  3. TypeScript 素描-基础类型

    博文读自 TypeScript 官方文档而来,不具有学习性,仅是本人学习时记录以供日后翻阅 ,有学习TypeScript的朋友还请去看更为详细的官方文档 TypeScript官网文档中的基础类型, T ...

  4. TypeScript Modules(模块)

    本文概述了TypeScript中如何使用模块以各种方式来组织代码.我们将涵括内部和外部的模块,并且讨论他们在适合在何时使用和怎么使用.我们也会学习一些如何使用外部模块的高级技巧,并且解决一些当我们使用 ...

  5. TypeScript 之 模块

    https://m.runoob.com/manual/gitbook/TypeScript/_book/doc/handbook/Modules.html 外部模块简写 外部模块简写:declare ...

  6. typescript - 7.模块

    我们可以把一些公共的功能单独抽离成一个文件作为一个模块. 模块里面的变量 函数 类等默认是私有的,如果我们要在外部访问模块里面的数据(变量.函数.类), 我们需要通过export暴露模块里面的数据(变 ...

  7. TypeScript入门九:TypeScript的模块

    关于TypeScript模块的基本使用方法 Ts的模块化语法与ES6的语法基本是一致(关于一些细节特性没有测试,请各自自行测试),然后再由tsconfig.json的module字段来描述转码类型,具 ...

  8. TypeScript 素描 - 类

    本文虽然是学自官方教程而来,但是也融入了自己的理解,而且对官方的例子做了一些修改 /* 类 面向对象编程的一大核心 使用C#.Java进行编程的朋友肯定已经是不能够再熟悉了 TypeScript的类与 ...

  9. TypeScript 素描 - 接口

    /* 接口 C#写多了,接口也自然也是理解的.不过TypeScript中的接口与 C#中的还是有些区别的 接口的作用就是为这些类型命名和为你的代码或第三方代码定义契约 */ //为方法的参数做契约 i ...

随机推荐

  1. POJ 2449 A*+SPFA

    A*算法求第k短路流程: 1)计算h[],即当前点到t的估计值 若为有向图,建立反向图求出h[].若为无向图,可直接求解h[].可通过SPFA求解. 2)A*搜索 每次找到新节点就直接加入队列,计算出 ...

  2. UVa 11542 (高斯消元 异或方程组) Square

    书上分析的太清楚,我都懒得写题解了.=_=|| #include <cstdio> #include <cstring> #include <cmath> #inc ...

  3. codeforces 340C Tourist Problem(简单数学题)

    题意:固定起点是0,给出一个序列表示n个点,所有点都在一条直线上,其中每个元素代表了从起点到这个点所走的距离.已知路过某个点不算到达这个点,则从起点出发,到达所有点的方案有许多种.求所有方案走的总路程 ...

  4. 浅析Java中HashMap的实现

    概述 HashMap是一个散列表,是基于拉链法实现的.这个类继承了Map接口,Map接口提供了所有的哈希操作,比如set().put().remove()等,并且允许操作的键值对为null.HashM ...

  5. mysql违背了唯一约束

    执行一批数据,违背唯一约束时会中断,导致后面的数据写不进去. mysql有提供ignore关键字,使用insert ignore into .... 这样,当违背了唯一约束的时候~就会直接跳过,不会报 ...

  6. 在Android应用中使用Clean架构

    自从开始开发安卓应用,我一直感觉我可以做得更好.我看过不少烂代码,其中当然有我写的.安卓系统的复杂性加上烂代码势必酿成灾祸,所以从错误中成长就很重要.我Google了如何更好地开发应用,发现了这个叫做 ...

  7. 基于Fragment实现Tab的切换,滑出侧边栏

    最近在学习Fragment(碎片)这是android3.0以后提出的概念,很多pad上面的设置部分都是通过Fragment来实现的,先看看具体的效果吧(图一)  (图二) (图三)第一章图片是初始时的 ...

  8. C语言——递归练习

    1.炮弹一样的球状物体,能够堆积成一个金字塔,在顶端有一个炮弹,它坐落在一个4个炮弹组成的层面上,而这4个炮弹又坐落在一个9个炮弹组成的层面上,以此类推.写一个递归函数CannonBall,这个函数把 ...

  9. SVM原理简介

    本文只是简单介绍一下SVM的理论框架,想要详细了解当中细节问题处理可以参看后续章节或者网上各种详细资料.推荐Andrew Ng的斯坦福大学机器学习课程. 年代中期发展起来的基于统计学习理论的一种机器学 ...

  10. 内核源码分析之进程调度机制(基于3.16-rc4)

    进程调度所使用到的数据结构: 1.就绪队列 内核为每一个cpu创建一个进程就绪队列,该队列上的进程均由该cpu执行,代码如下(kernel/sched/core.c). DEFINE_PER_CPU_ ...