可选的模块加载
import id = require("...")
模块里不要使用命名空间
模块结构上的危险信号
(1)文件的顶层声明是 export namespace Foo {...},删除Foo并把所有内容上移
(2)文件只有一个export class或export function 考虑使用export default
命名空间
namespace Name{}
-可以用命名空间来包裹同一作用的代码
-当项目很大时,可以将这些代码分离,用相同的命名空间进行包裹
---当涉及到多文件时,我们必须确保所有编译后的代码都被加载了:
------(1)将所有文件编译为一个输出文件,需要--outFile标记
------ e.g tsc --outFile sample.js Validation.ts LettersOnlyValidator.ts Zi pCodeValidator.ts Test.ts
------(2)编译每个文件,然后在页面上通过<script>标签把文件按照正确的顺序引进来
/** * 别名 */ namespace Shape{ export namespace Polygons{ export class Triangle{} export class Square{} } } import Polygons=Shape.Polygons; let sq = new Polygons.Square();