TypeScript 模块概述
TypeScript 模块的设计理念是可以更换的组织代码。
模块是在其自身的作用域里执行,并不是在全局作用域,这意味着定义在模块里面的变量、函数和类等在模块外部是不可见的,除非明确地使用 export 导出它们。类似地,我们必须通过 import 导入其他模块导出的变量、函数、类等。
两个模块之间的关系是通过在文件级别上使用 import 和 export 建立的。
export 关键字
模块导出使用关键字 export 关键字,语法格式如下:
代码语言:javascript复制// 文件名 : SomeInterface.ts
export interface SomeInterface { // 代码部分 }
在另外一个文件使用该模块就需要使用 import 关键字来导入:
代码语言:javascript复制import someInterfaceRef = require("./SomeInterface");
模块使用示例
1. 创建类型下面的目录
代码语言:javascript复制|_ tools 目录
|_ animal.ts
|_ dog.ts
|_ cat.ts
|_ main.ts
2 animal.ts 源码
代码语言:javascript复制export interface Animal{
say():void;
}
3. dog.ts 源码
代码语言:javascript复制import { Animal } from "./animal";
export class Dog implements Animal{
say(): void {
console.log("dog say wang wang")
}
}
4. cat.ts 源码
代码语言:javascript复制import { Animal } from "./animal";
export class Cat implements Animal{
say(): void {
console.log("dog say miao miao")
}
}
5. main.ts 源码
代码语言:javascript复制import {Cat} from "./tools/cat";
import {Dog} from "./tools/dog";
var cat = new Cat();
cat.say();
var dog = new Dog();
dog.say();
6. 编译并运行 main.ts
代码语言:javascript复制E:tsDemo> tsc .main.ts
E:tsDemo> node .main.js
# 输出
dog say miao miao
dog say wang wang