模块是在其自身的作用域里执行,并不是在全局作用域,这意味着定义在模块里面的变量、函数和类等在模块外部是不可见的,除非明确地使用 export
导出它们。必须通过 import
导入其他模块导出的变量、函数、类等。
两个模块之间的关系是通过在文件级别上使用 import
和 export
建立的。
模块导出使用关键字 export
关键字,语法格式如下:
1 | // 文件名 : SomeInterface.ts |
要在另外一个文件使用该模块就需要使用 import
关键字来导入:
1 | import someInterfaceRef = require("./SomeInterface"); |
实例:
IShape.ts 文件代码:
1 | /// <reference path = "IShape.ts" /> |
Circle.ts 文件代码:
1 | import shape = require("./IShape"); |
Triangle.ts 文件代码:
1 | import shape = require("./IShape"); |
TestShape.ts 文件代码:
1 | import shape = require("./IShape"); |
使用 tsc
命令编译以上代码(AMD):
1 | tsc --module amd TestShape.ts |