Modules trong TypeScript là một cách để tổ chức và chia nhỏ mã nguồn thành các phần độc lập, có thể tái sử dụng và dễ dàng quản lý hơn. Module cho phép bạn tách biệt các phần chức năng của ứng dụng thành các tệp riêng lẻ, sau đó sử dụng imports và exports để chia sẻ và kết hợp các phần mã cần thiết giữa các tệp khác nhau. TypeScript dựa trên mô hình module của JavaScript nhưng mở rộng khả năng với các tính năng của ngôn ngữ hiện đại.
Module trong TypeScript là bất kỳ tệp nào có chứa các từ khóa export hoặc import. Mỗi tệp TypeScript thực sự là một module nếu nó xuất ra hoặc nhập vào các thành phần khác.
Các module trong TypeScript hoạt động theo hai cơ chế chính:
Bạn có thể xuất bất kỳ thành phần nào trong một tệp bằng cách sử dụng từ khóa export
.
// file: mathUtils.ts export function add(a: number, b: number): number { return a + b; } export const PI = 3.14;
Trong tệp mathUtils.ts
, hàm add
và hằng số PI
được xuất ra để có thể sử dụng ở những tệp khác.
Bạn có thể nhập các thành phần từ một module khác vào module hiện tại bằng từ khóa import
.
// file: main.ts import { add, PI } from './mathUtils'; console.log(add(5, 10)); // 15 console.log(PI); // 3.14
Trong tệp main.ts
, chúng ta đã nhập hàm add
và hằng số PI
từ module mathUtils.ts
và sử dụng chúng.
TypeScript hỗ trợ hai cách xuất: export có tên (named export) và export mặc định (default export).
Xuất có tên cho phép bạn xuất nhiều thành phần cùng lúc từ một module. Bạn cần chỉ định rõ ràng tên của thành phần khi nhập nó.
// file: shapes.ts export interface Circle { radius: number; } export interface Rectangle { width: number; height: number; }
Nhập các thành phần với tên cụ thể:
import { Circle, Rectangle } from './shapes';
Xuất mặc định cho phép bạn chỉ định một thành phần chính làm đầu ra chính của module. Bạn không cần sử dụng tên cụ thể khi nhập.
// file: calculator.ts export default function multiply(a: number, b: number): number { return a * b; }
Khi nhập thành phần xuất mặc định, bạn có thể sử dụng bất kỳ tên nào:
import multiply from './calculator'; console.log(multiply(3, 5)); // 15
import { add, subtract } from './mathUtils';
import * as MathUtils from './mathUtils'; console.log(MathUtils.add(2, 3)); console.log(MathUtils.PI);
import defaultExport from './someModule';
./mathUtils
).npm
(ví dụ: các thư viện từ node_modules
). Bạn có thể nhập các modules từ node_modules
mà không cần cung cấp đường dẫn cụ thể.Ví dụ về nhập module từ thư viện bên ngoài:
import * as _ from 'lodash';
TypeScript hỗ trợ hai hệ thống module chính:
import
và export
. Đây là chuẩn được khuyến khích sử dụng.require
và module.exports
.Bạn có thể chọn hệ thống module bằng cách cấu hình trong tệp tsconfig.json
:
{ "compilerOptions": { "module": "ESNext" // hoặc "CommonJS" } }
Modules trong TypeScript là công cụ mạnh mẽ giúp bạn tổ chức mã nguồn theo cách dễ quản lý, dễ bảo trì, và dễ tái sử dụng. Bằng cách sử dụng export
và import
, bạn có thể chia nhỏ các thành phần chức năng thành các tệp module riêng biệt và ghép nối chúng khi cần. Điều này không chỉ giúp tăng cường cấu trúc mã mà còn giúp phát triển ứng dụng lớn một cách dễ dàng và linh hoạt hơn.