Полное руководство по модулям TypeScript: изучение методов и примеров

В TypeScript модули — это важная функция, которая позволяет разработчикам организовывать и инкапсулировать свой код в отдельные блоки. Модули позволяют разделить кодовую базу на более мелкие, управляемые части, каждая из которых имеет свою область действия и зависимости. В этой статье мы рассмотрим концепцию модулей в TypeScript и обсудим различные методы и примеры, демонстрирующие их использование.

  1. Экспорт и импорт модулей.
    Одним из фундаментальных аспектов модулей является экспорт и импорт функций между различными модулями. TypeScript предоставляет несколько способов добиться этого:

    а. Экспорт и импорт по умолчанию:

    // moduleA.ts
    export default function foo() {
     console.log("Hello from moduleA");
    }
    // moduleB.ts
    import foo from "./moduleA";
    foo(); // Output: Hello from moduleA

    б. Именованный экспорт и импорт:

    // moduleA.ts
    export function greet() {
     console.log("Hello!");
    }
    export function farewell() {
     console.log("Goodbye!");
    }
    // moduleB.ts
    import { greet, farewell } from "./moduleA";
    greet();    // Output: Hello!
    farewell(); // Output: Goodbye!

    в. Импорт пространства имен:

    // moduleA.ts
    export const PI = 3.14159;
    // moduleB.ts
    import * as math from "./moduleA";
    console.log(math.PI); // Output: 3.14159
  2. Реэкспорт модулей.
    Иногда вам может потребоваться повторно экспортировать функциональные возможности из одного модуля в другой, не изменяя их. TypeScript позволяет это сделать посредством реэкспорта:

    // moduleA.ts
    export function add(a: number, b: number): number {
     return a + b;
    }
    // moduleB.ts
    export { add as sum } from "./moduleA";
    // moduleC.ts
    import { sum } from "./moduleB";
    console.log(sum(2, 3)); // Output: 5
  3. Разрешение модулей.
    TypeScript предоставляет различные стратегии разрешения зависимостей модулей, включая относительные и абсолютные пути, а также разрешение модулей с помощью менеджеров пакетов, таких как npm:

    // Relative Path
    import { foo } from "./moduleA";
    // Absolute Path
    import { bar } from "src/moduleB";
    // Node.js-style module resolution
    import { baz } from "lodash";
  4. Окружающие модули.
    Окружающие модули используются для описания формы существующих модулей JavaScript, в которых отсутствуют объявления TypeScript. Это позволяет вам беспрепятственно использовать внешние библиотеки в ваших проектах TypeScript:

    // math-lib.js
    function multiply(a, b) {
     return a * b;
    }
    // math-lib.d.ts
    declare module "math-lib" {
     export function multiply(a: number, b: number): number;
    }
    // app.ts
    import { multiply } from "math-lib";
    console.log(multiply(2, 3)); // Output: 6

Модули в TypeScript предлагают мощный механизм организации и структурирования кодовых баз, обеспечивая возможность повторного использования и удобства обслуживания. Используя экспорт и импорт модулей, реэкспорт, стратегии разрешения модулей и внешние модули, разработчики могут эффективно управлять зависимостями и инкапсулировать функциональность. Понимание этих методов и примеров позволит вам писать модульный и масштабируемый код TypeScript.