在Typescript1.5 中,内部模块称作命名空间,外部模块成为模块

一、什么是模块?

模块就是一个或一组功能模块。

  1. 模块在其自身的作用域里执行,而不是在全局作用域里。意味着,模块中的变量、函数、类等在模块外部无法访问,除非通过export形式导出。相应的,如果想使用其他模块中的变量、函数、类、接口等必须使用import导入
  2. 模块是自声明的。两个模块之间的关系通过文件级别上使用imports和exports建立
  3. 模块通过模块加载器去导入其他模块。模块加载器的作用是在执行的时候查找并执行这个模块的所有依赖。Javascript的模块加载器是服务于node.js的CommonJS和服务于web应用的Require.js

二、导出模块

  1. 导出声明:任何声明都可以使用export关键字导出
  2. 导出语句:在文件中使用export导出对应的部分,同时可以重命名
  3. 默认导出:每个模块都可以有且仅有一个default导出

三、导入模块

模块的导入操作与导出一样简单。 可以使用以下import形式之一来导入其它模块中的导出内容。

四、创建模块最佳实践

  1. 尽可能在顶层导出
  2. 如果仅导出单个class或function,使用export default
  3. 明确列出导入的名字

五、命名空间

命名空间是将不同文件或位置的代码通过命名空间约束在一起

Typescript04---模块、命名空间的更多相关文章

  1. oop思维意识,类 模块命名空间,类扩展之继承 、组合、mixin三种模式

    python的书都是讲怎么创建类怎么实例化对象,一般会用使用了,但还不具备这种编程意识.这是从python学习手册第四版节选出来的,书中说oop不仅是一种技术,更是一种经验.学习大神的看法,为什么需要 ...

  2. TypeScript完全解读(26课时)_15.模块和命名空间

    新建文件夹ts-modules 并新建index.ts 在根index.ts内引入 新建a.ts文件 ts在1.5之前有两个概念一个是内部模块,一个是外部模块,因为在1.5之前es6的标准还没有提出 ...

  3. python基础之包、模块、命名空间和作用域

    一.模块介绍 模块就是一组功能的集合体,我们的程序可以导入模块来复用模块里的功能. 模块的作用: (1)从文件级别组织程序,更方便管理:随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一 ...

  4. 【Python五篇慢慢弹(4)】模块异常谈python

    模块异常谈python 作者:白宁超 2016年10月10日12:08:31 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给出的pythondo ...

  5. python学习笔记系列----(四)模块

    这一章主要是叙述了python模块的概念以及包的概念,还有它们的使用:收获也是大大的. 提起python文件,经常会听到3个名词,python脚本,python模块,python包.脚本的概念是从py ...

  6. Python2.5-原理之模块

    此部分来自于<Python学习手册>第五部分 一.模块(21章) 模块是最高级别的程序组织单元,它将程序代码和数据封装起来以便重用..模块往往对应于python程序文件.每个文件就是一个模 ...

  7. python 深入模块和包

    模块可以包含可执行语句以及函数的定义. 这些语句通常用于初始化模块. 它们只在 第一次 导入时执行.只在第一次导入的时候执行,第一次.妈蛋的第一次...后面再次导入就不执行了. [1](如果文件以脚本 ...

  8. ch2-3:模块的使用-window环境

    导入模块:import 模块名 完成如下工作: 1.编写一个小程序testmodule.py,导入新建的模块nester,并定义一个小列表cast,然后使用调用模块中的函数打印列表到屏幕上: impo ...

  9. Python模块学习

    6. Modules If you quit from the Python interpreter and enter it again, the definitions you have made ...

  10. 深入浅出ES6(十六):模块 Modules

    作者 Jason Orendorff  github主页  https://github.com/jorendorff 早在2007年我刚加入Mozilla的JavaScript团队的时候广为流传一个 ...

随机推荐

  1. 第一个Appium脚本

    测试环境 Win 10 64bit Python 3.5 Appium 1.7.2 Andriod 5.1.1 模拟器& Android 5.1 MX4 测试App:考研帮Android版 3 ...

  2. rabbtimq非持久化测试

    send端代码 import pika,time,threading class send(): def __init__(self,que_nam='hello'): self.credential ...

  3. 支持“XXX”上下文的模型已在数据库创建后发生更改。请考虑使用 Code First 迁移更新数据库(http://go.microsoft.com/fwlink/?LinkId=238269)。

    在Global.asax文件中的Application_Start()方法中加入以下代码 Database.SetInitializer<XXX>(null);

  4. 使用 mysqltuner 检测 mysql 稳定性

    github : https://github.com/major/MySQLTuner-perl MySQLTuner是一个用Perl编写的脚本,它可以帮助您进行MySQL配置,并提出增强性能和稳定 ...

  5. [BJOI2019]删数(线段树)

    [BJOI2019]删数(线段树) 题面 洛谷 题解 按照值域我们把每个数的出现次数画成一根根的柱子,然后把柱子向左推导,\([1,n]\)中未被覆盖的区间长度就是答案. 于是问题变成了单点修改值,即 ...

  6. AT2369 Ants on a Circle (思路)

    考虑到蚂蚁们的相对位置不会变化,而且,如果把“相遇后掉头”看作是“相遇后交换编号”的话,也可以得出来最后都有哪些位置有蚂蚁 然后,只要确定哪个位置是“1”就可以了 然后搞一个指针p代表原来第一个位置的 ...

  7. 洛谷 P2325 [SCOI2005]王室联邦

    简化版题意: 一个国家由\(n\)个城市组成一颗树,要将其划分为\(n\)个省 每个城市大小为\([B,3B]\),每个省有一个省会(不一定要在省内),使得每个省的所有城市到省会的路径上不能经过其他省 ...

  8. Linux命令_sed

    1.替换(将"xxx"替换成"yyy") 现有文件pets.txt 要将其中的"my"替换为"your",可以这样替换, ...

  9. 基于前后端分离的Nginx+Tomcat动静分离

    1.什么是动静分离 "动"与"静" 在弄清动静分离之前,我们要先明白什么是动,什么是静. 在Web开发中,通常来说,动态资源其实就是指那些后台资源,而静态资源就 ...

  10. 1.7分布式工具配置及安装(仅供学习Xshell,VMware)

    前言 最近因为换工作以及其他的一些琐事,耽误了更博时间,再加上分布式的这几个软件之前没撸过....这学习这几个工具上也花了点时间 本篇博客为后续分布式的学习提供基础的安装和配置. 首先,系统为Cent ...