📜  TypeScript-模块(1)

📅  最后修改于: 2023-12-03 14:48:05.681000             🧑  作者: Mango

TypeScript 模块

简介

TypeScript是一种开源的编程语言,它是JavaScript的超集。它添加了一些特性,例如:类型注解、类、接口和命名空间等。

在TypeScript中,我们可以通过模块的方式来组织代码。模块可以把代码分离成不同的功能模块,有助于提高代码的可复用性和维护性。

模块的定义

在TypeScript中,一个模块就是一个独立的文件。一个模块可以包含多个类、函数、接口等代码段。一个模块可以被其他模块引用。

一个简单的模块示例:

// utils.ts
export function add(a: number, b: number) {
  return a + b;
}

export function subtract(a: number, b: number) {
  return a - b;
}

在上述代码中,我们定义了一个工具模块,包含了两个函数:addsubtract。通过export关键字,我们把这两个函数暴露出去,以便其他模块可以引用它们。

我们可以在其他模块中通过import关键字来引用该模块:

// app.ts
import { add, subtract } from './utils';

console.log(add(1, 2)); // 输出:3
console.log(subtract(2, 1)); // 输出:1

在上述代码中,我们通过import关键字引入了utils模块中的addsubtract函数,并分别调用了它们。

导出的类型

我们不仅可以导出函数,还可以导出类、接口等类型。如下示例:

// models.ts
export interface User {
  name: string;
  age: number;
}

export class Product {
  constructor(public name: string, public price: number) { }
}

在上述代码中,我们定义了一个包含User接口和Product类的模块。通过export关键字,我们把这两个类型暴露出去,以便其他模块可以引用它们。

我们可以在其他模块中通过import关键字来引用该模块:

// app.ts
import { User, Product } from './models';

const user: User = {
  name: '张三',
  age: 20
};

const product: Product = new Product('面包', 10);

console.log(user); // 输出:{ name: '张三', age: 20 }
console.log(product); // 输出:Product { name: '面包', price: 10 }

在上述代码中,我们通过import关键字引入了models模块中的User接口和Product类,并根据它们的定义创建了一个用户对象和一个产品对象。

默认导出

一个模块可以有多个导出,但只能有一个默认导出。默认导出可以是任意类型,如函数、类、对象、字符串等。

一个简单的默认导出示例:

// message.ts
export default 'Hello World';

在上述代码中,我们定义了一个默认导出Hello World字符串。

我们可以在其他模块中通过import关键字来引用该模块:

// app.ts
import message from './message';

console.log(message); // 输出:Hello World

在上述代码中,我们通过import关键字引入了message模块的默认导出,并输出了该字符串。

总结

通过模块的方式,我们可以把代码分离成不同的功能模块,提高代码的可复用性和维护性。在TypeScript中,一个模块就是一个独立的文件。一个模块可以包含多个类、函数、接口等代码段。一个模块可以被其他模块引用。我们可以通过export关键字来导出函数、类、接口等类型,并通过import关键字在其他模块中引用它们。一个模块可以有多个导出,但只能有一个默认导出。默认导出可以是任意类型,如函数、类、对象、字符串等。