TypeScript 模块

TypeScript 模块概述

TypeScript 模块的设计理念是可以更换的组织代码。

模块是在其自身的作用域里执行,并不是在全局作用域,这意味着定义在模块里面的变量、函数和类等在模块外部是不可见的,除非明确地使用 export 导出它们。类似地,我们必须通过 import 导入其他模块导出的变量、函数、类等。

两个模块之间的关系是通过在文件级别上使用 import 和 export 建立的。

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