TypeScript - Chương: A Beginner's Guide

Xin chào các bạn, những người đam mê lập trình! Hôm nay, chúng ta sẽ bắt đầu một hành trình thú vị vào thế giới của các module TypeScript. Đừng lo lắng nếu bạn mới bắt đầu lập trình; tôi sẽ là người bạn thân thiện của bạn, giải thích mọi thứ từng bước. Hãy cùng nhau khám phá!

TypeScript - Modules

什么是模块?

Trước khi chúng ta đi vào chi tiết, hãy hiểu模块 là gì. Hãy tưởng tượng bạn đang xây dựng một cấu trúc Lego khổng lồ. Thay vì tạo mọi thứ một lần, bạn có lẽ sẽ xây dựng các phần nhỏ hơn riêng lẻ và sau đó kết hợp chúng lại. Đó chính xác là điều mà các module làm trong lập trình!

Các module giúp chúng ta tổ chức mã của mình thành các phần quản lý được, có thể tái sử dụng. Chúng cho phép chúng ta chia mã của mình ra nhiều tệp, giúp dễ dàng bảo trì và hiểu rõ hơn. Trong TypeScript, chúng ta có hai loại module: Nội bộ và Ngoại bộ.

Internal Modules

Các module nội bộ, còn được gọi là các không gian tên (namespaces), là cách ban đầu TypeScript tổ chức mã. Mặc dù chúng ít phổ biến hơn bây giờ, nhưng việc hiểu chúng có thể rất hữu ích.

Tạo một Internal Module

Hãy tạo module nội bộ đầu tiên của chúng ta:

namespace MathOperations {
export function add(x: number, y: number): number {
return x + y;
}

export function subtract(x: number, y: number): number {
return x - y;
}
}

console.log(MathOperations.add(5, 3));      // Output: 8
console.log(MathOperations.subtract(10, 4)); // Output: 6

Trong ví dụ này, chúng ta đã tạo một không gian tên叫做 MathOperations. Bên trong nó, chúng ta có hai hàm: addsubtract. Từ khóa export làm cho các hàm này có thể truy cập được bên ngoài không gian tên.

Sử dụng Internal Modules

Để sử dụng các hàm từ không gian tên của chúng ta, chúng ta thêm tên không gian tên trước chúng:

let sum = MathOperations.add(10, 20);
console.log(sum); // Output: 30

Nested Namespaces

Chúng ta thậm chí có thể đặt các không gian tên bên trong nhau:

namespace Geometry {
export namespace Circle {
export function calculateArea(radius: number): number {
return Math.PI * radius * radius;
}
}
}

console.log(Geometry.Circle.calculateArea(5)); // Output: 78.53981633974483

Ở đây, chúng ta có một không gian tên Circle được đặt bên trong không gian tên Geometry.

External Modules

Các module ngoại bộ là cách tổ chức mã TypeScript hiện đại và được ưa chuộng hơn. Chúng phù hợp với ECMAScript 2015 (ES6) modules.

Tạo một External Module

Hãy tạo một tệp có tên mathOperations.ts:

// mathOperations.ts
export function add(x: number, y: number): number {
return x + y;
}

export function multiply(x: number, y: number): number {
return x * y;
}

Trong tệp này, chúng ta đang xuất hai hàm: addmultiply.

Nhập và Sử dụng External Modules

Bây giờ, hãy tạo một tệp khác để sử dụng các hàm này:

// app.ts
import { add, multiply } from './mathOperations';

console.log(add(5, 3));      // Output: 8
console.log(multiply(4, 2)); // Output: 8

Ở đây, chúng ta đang nhập các hàm cụ thể từ module mathOperations.

Default Exports

Đôi khi, bạn có thể muốn xuất một thứ chính từ một module. Đó là khi các xuất mặc định xuất hiện:

// greet.ts
export default function greet(name: string): string {
return `Hello, ${name}!`;
}

Để nhập một xuất mặc định:

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

console.log(greet('Alice')); // Output: Hello, Alice!

Đổi tên Imports

Bạn cũng có thể đổi tên các nhập nếu bạn muốn tránh xung đột tên:

import { add as sum } from './mathOperations';

console.log(sum(5, 3)); // Output: 8

Tại sao sử dụng Modules?

  1. Tổ chức: Modules giúp giữ mã của bạn tổ chức và dễ bảo trì.
  2. Bọc kín: Chúng cung cấp một cách để giấu đi sự phức tạp của mã của bạn.
  3. Tái sử dụng: Bạn có thể dễ dàng tái sử dụng mã trên các phần khác nhau của ứng dụng của bạn.
  4. Không gian tên: Chúng giúp tránh xung đột tên trong mã của bạn.

Module Resolution Strategies

TypeScript sử dụng các chiến lược khác nhau để giải quyết modules:

Chiến lược Mô tả
Classic Sử dụng một thuật toán đơn giản để tìm modules
Node Mô phỏng cơ chế giải quyết module của Node.js
Path mapping Cho phép bạn chỉ định cách TypeScript nên giải quyết các nhập

Kết luận

Xin chúc mừng! Bạn đã chính thức bước vào thế giới của các module TypeScript. Nhớ rằng, giống như học骑自行车, nó có thể cảm thấy不稳定 ban đầu, nhưng với sự luyện tập, bạn sẽ nhanh chóng trở nên thành thạo.

Modules là một công cụ mạnh mẽ trong bộ công cụ lập trình của bạn. Chúng giúp bạn viết mã sạch sẽ, tổ chức và tái sử dụng. Khi bạn tiếp tục hành trình TypeScript của mình, bạn sẽ thấy mình sử dụng modules ngày càng nhiều.

Tiếp tục lập trình, tiếp tục học hỏi, và quan trọng nhất, hãy vui vẻ! Ai biết được, ứng dụng tiếp theo великолепный có thể chỉ cách một module. Chúc bạn lập trình vui vẻ!

Credits: Image by storyset