Hàm TypeScript: Cách sử dụng tham số và kiểu trả về

Hàm là khối xây dựng của bất kỳ ngôn ngữ lập trình nào và TypeScript tăng cường chúng bằng cách thêm tính an toàn kiểu. Bằng cách định nghĩa kiểu cho tham số và giá trị trả về, TypeScript cho phép các nhà phát triển viết mã đáng tin cậy và dễ bảo trì hơn. Hướng dẫn này sẽ giới thiệu cho bạn về hàm TypeScript, bao gồm cách sử dụng tham số và kiểu trả về hiệu quả.

Định nghĩa một hàm trong TypeScript

Trong TypeScript, các hàm có thể được định nghĩa bằng từ khóa function, tương tự như JavaScript. Tuy nhiên, TypeScript cho phép bạn chỉ định loại tham số và giá trị trả về để tăng thêm tính an toàn và khả năng đọc.

Ví dụ về hàm cơ bản

Sau đây là ví dụ về hàm TypeScript cơ bản với các tham số được gõ và kiểu trả về:

function add(a: number, b: number): number {
  return a + b;
}

const result = add(5, 3); // Output: 8

Trong ví dụ này, hàm add chấp nhận hai tham số có kiểu number và trả về giá trị có kiểu number. Điều này đảm bảo cả đầu vào và đầu ra đều tuân thủ các kiểu mong đợi.

Tham số hàm trong TypeScript

Các hàm TypeScript có thể chấp nhận nhiều loại tham số khác nhau, chẳng hạn như tham số tùy chọn, mặc định và tham số còn lại. Hãy cùng khám phá từng loại chi tiết.

Tham số tùy chọn

Bạn có thể định nghĩa các tham số tùy chọn bằng cách thêm ? sau tên tham số. Các tham số tùy chọn không cần phải được cung cấp khi hàm được gọi.

function greet(name: string, age?: number): string {
  if (age) {
    return `Hello, ${name}. You are ${age} years old.`;
  } else {
    return `Hello, ${name}.`;
  }
}

console.log(greet("Alice")); // Output: Hello, Alice.
console.log(greet("Bob", 25)); // Output: Hello, Bob. You are 25 years old.

Trong ví dụ này, tham số age là tùy chọn. Hàm này hoạt động chính xác bất kể age có được cung cấp hay không.

Tham số mặc định

Tham số mặc định cho phép bạn chỉ định giá trị mặc định cho tham số trong trường hợp chúng không được cung cấp khi hàm được gọi.

function multiply(a: number, b: number = 2): number {
  return a * b;
}

console.log(multiply(5)); // Output: 10
console.log(multiply(5, 3)); // Output: 15

Trong ví dụ này, tham số b có giá trị mặc định là 2. Nếu không cung cấp tham số thứ hai, 2 sẽ được sử dụng theo mặc định.

Tham số nghỉ ngơi

Tham số còn lại cho phép bạn truyền một số lượng đối số khác nhau cho một hàm. Chúng được định nghĩa bằng cú pháp ....

function sum(...numbers: number[]): number {
  return numbers.reduce((total, num) => total + num, 0);
}

console.log(sum(1, 2, 3, 4)); // Output: 10
console.log(sum(5, 10, 15)); // Output: 30

Trong ví dụ này, hàm sum chấp nhận bất kỳ số lượng đối số nào, tất cả đều có kiểu number và trả về tổng của chúng.

Kiểu trả về trong TypeScript

Việc chỉ định kiểu trả về của hàm cũng quan trọng như việc xác định kiểu tham số. Nó giúp TypeScript hiểu được đầu ra mong đợi của hàm, đảm bảo trả về đúng kiểu dữ liệu.

Chỉ định các loại trả về

Để chỉ định kiểu trả về của một hàm, hãy thêm dấu hai chấm : theo sau là kiểu sau danh sách tham số.

function isEven(num: number): boolean {
  return num % 2 === 0;
}

console.log(isEven(4)); // Output: true
console.log(isEven(5)); // Output: false

Trong ví dụ này, hàm isEven trả về boolean cho biết số đầu vào là chẵn hay không.

Các hàm không có kiểu trả về

Khi một hàm không trả về giá trị, kiểu trả về của nó là void. Điều này hữu ích cho các hàm thực hiện hành động mà không cung cấp kết quả.

function logMessage(message: string): void {
  console.log(message);
}

logMessage("Hello, TypeScript!"); // Output: Hello, TypeScript!

Trong ví dụ này, hàm logMessage ghi nhật ký một thông báo vào bảng điều khiển và không trả về kết quả nào, do đó kiểu trả về là void.

Phần kết luận

Các hàm TypeScript cung cấp một cách mạnh mẽ để viết mã an toàn kiểu bằng cách xác định các kiểu tham số và kiểu trả về. Bằng cách sử dụng các tham số tùy chọn, mặc định và còn lại, cũng như chỉ định các kiểu trả về, bạn có thể tạo các hàm mạnh mẽ và dễ bảo trì hơn. Bắt đầu sử dụng các hàm TypeScript trong các dự án của bạn để đảm bảo chất lượng và tính an toàn của mã tốt hơn.