В TypeScript модули — это важная функция, которая позволяет разработчикам организовывать и инкапсулировать свой код в отдельные блоки. Модули позволяют разделить кодовую базу на более мелкие, управляемые части, каждая из которых имеет свою область действия и зависимости. В этой статье мы рассмотрим концепцию модулей в TypeScript и обсудим различные методы и примеры, демонстрирующие их использование.
-
Экспорт и импорт модулей.
Одним из фундаментальных аспектов модулей является экспорт и импорт функций между различными модулями. 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 -
Реэкспорт модулей.
Иногда вам может потребоваться повторно экспортировать функциональные возможности из одного модуля в другой, не изменяя их. 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 -
Разрешение модулей.
TypeScript предоставляет различные стратегии разрешения зависимостей модулей, включая относительные и абсолютные пути, а также разрешение модулей с помощью менеджеров пакетов, таких как npm:// Relative Path import { foo } from "./moduleA"; // Absolute Path import { bar } from "src/moduleB"; // Node.js-style module resolution import { baz } from "lodash"; -
Окружающие модули.
Окружающие модули используются для описания формы существующих модулей 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.