TypeScript 中的导出语句

Shuvayan Ghosh Dastidar 2023年1月30日 2022年7月12日
  1. 在 TypeScript 中使用 export 语句
  2. TypeScript 中的导出类型
  3. 在 TypeScript 中导出所有内容
TypeScript 中的导出语句

TypeScript 中的 export 关键字用于跨不同文件导出变量、常量、类、函数和接口或类型别名。它对于在 TypeScript 中跨大型项目的高效文件管理非常有用。

本文将演示在 TypeScript 中使用 export 语句。

在 TypeScript 中使用 export 语句

export 语句的语法以 export 关键字开头,后跟要导出的元素,可以使用 import 关键字将其导入另一个文件。

File1.ts

export SomeFunction() {
    // body of the function
}

File2.ts

import { SomeFunction } from "./File1";

SomeFunction();

上面显示了如何在 TypeScript 中使用 export 关键字来导入和导出模块的语法和基本示例。

TypeScript 中的导出类型

TypeScript 有不同的 export 语句,一个是命名导出,另一个是默认导出。default 导出仅限于每个文件一个默认导出,而可以有多个命名导出或正常导出语句。

File1.ts

const AddTwoNumbers = (a : number, b : number) : number  => {
    return a + b;
}

export default AddTwoNumbers;

File2.ts

import AddTwoNumbers from "./File1"
const result = AddTwoNumbers(4,5);

因此,在上面的示例中,在使用 File1.ts 中定义的 default export 函数后添加了两个数字。现在,即使使用不同的名称也可以使用该功能。

例如:

File2.ts

import AddNumbers from "./File1"
const result = AddNumbers(4,5);

因此,任何名称都可以在默认导出条件中使用。但是,默认导出仅限于每个文件一个。

我们必须使用非默认或命名导出来导出更多元素。导出的模块以相同的名称导入。

File1.ts

const AddNumbers = (a : number, b : number) : number => {
    return a + b;
}

const SubtractTwoNumbers = (a : number, b : number) : number => {
    return a - b;
}

export { AddNumbers, SubtractTwoNumbers };

File2.ts

import { AddNumbers, SubtractTwoNumbers } from "./File1"
const resultAdd = AddNumbers(4,5);
const resultSub = SubtractTwoNumbers(4,5);

上面显示了各个文件中命名导出和导入的示例。它们必须用大括号括起来,并且与默认导出不同,可以有任意数量的命名导出。

在 TypeScript 中使用默认导出的另一种方法是使用 export = 语法。

File1.ts

class LengthValidator {
    check(s : string) {
        return s.length > 0;
    }
}

export = LengthValidator;

File2.ts

import lengthChecker = require("./File1");
let validator = lengthChecker();
var testString : string = "test"
if ( validator.check(testString)) {
    console.log("Okay");
} else {
    console.log("Not working");
}

在 TypeScript 中导出所有内容

有时,导出某个文件中定义的所有元素变得很重要。它可以通过 export* 运算符来完成。

File1.ts

export const AddNumbers = (a : number, b : number) : number => {
    return a + b;
}

export const SubtractTwoNumbers = (a : number, b : number) : number => {
    return a - b;
}
export * as utils from "./File1"

File2.ts

import {utils} from "./File1"
const resultAdd = utils.AddNumbers(4,5);
const resultSub = utils.SubtractTwoNumbers(4,5);

因此 File1.ts 中的所有内容都导出为 utils 并可以导入到不同的文件中,并且可以引用函数,如上例所示。

Shuvayan Ghosh Dastidar avatar Shuvayan Ghosh Dastidar avatar

Shuvayan is a professional software developer with an avid interest in all kinds of technology and programming languages. He loves all kinds of problem solving and writing about his experiences.

LinkedIn Website