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