TypeScript的初学习(4)

14.命名空间

  内部模块,现在称为“命名空间”,外部模块则简称为“模块”。

namespace Validation {
    export interface StringValidator {
        isAcceptable(s: string): boolean;
    }
}

  别名:简化命名空间的操作方法:import q=x.y.z

15.命名空间和模块

  命名空间是位于全局命名空间下的一个普通的带有名字的js对象。可以把所有的依赖都放在HTML的script标签中。

  区别:模块可以声明它的依赖。

  命名空间和模块的陷阱:

  1.对模块的使用 ///<reference>

  2.不必要的命名空间

  3.模块的取舍:ts与js文件一一对应。

16.模块解析

  编译器在查找导入模块内容时所遵循的流程。

       1.引入非相对的,则编译器会尝试定位一个外部模块声明。引入非相对的。

  2.模块解析策略

    Classic和Node。--moduleResolution标记来指定使用哪种模块解析策略。--module AMD | System | ES2015时的默认值为Classic,其他情况为Node。

    附加的模块解析标记:使用baseURL、路径映射、利用rootDirs指定虚拟目录

{
  "compilerOptions": {
    "rootDirs": [
      "src/views",
      "generated/templates/views"
    ]
  }
}

 跟踪模块解析:--traceResolution

使用--noResove:告诉编译器不要添加任何不是在命令行上传入的文件到编译列表。命令行指定了才会上传。

exclude列表中的模块还会被编译器使用,原因:有些没有涉及到模块解析,则自动包含,排除一个文件的同时需要排除import或者<refrence>指令。

17.声明合并

  指的是编译器将针对同一个名字的两个独立声明合并为单一声明,合并后同时拥有原先两个声明的特性。

18.JSX

19.装饰器

20.三斜线指令

包含ML标签的单行注释。注释的内容会作为编译器指令使用。

posted @ 2021-02-25 16:01  yaqian96  阅读(45)  评论(0)    收藏  举报