Short-circuiting trong TypeScript đề cập đến một kỹ thuật trong các biểu thức logic, cho phép đánh giá các biểu thức một cách hiệu quả hơn bằng cách ngừng kiểm tra khi kết quả đã xác định. Điều này xảy ra trong các phép toán logic như AND
(&&
) và OR
(||
), nơi không cần phải đánh giá toàn bộ biểu thức nếu giá trị của một phần của nó đã đủ để quyết định kết quả. Trong bài viết này, chúng ta sẽ tìm hiểu cách short-circuiting hoạt động trong TypeScript và các ứng dụng của nó.
&&
)Khi sử dụng phép toán AND
, nếu một trong các biểu thức bên trái là false
, thì kết quả của toàn bộ biểu thức sẽ là false
, và phần bên phải sẽ không được đánh giá.
function isValidAge(age: number): boolean { return age >= 18; } const age = 16; const canVote = isValidAge(age) && age >= 18; // age >= 18 sẽ không được kiểm tra console.log(canVote); // Kết quả: false
Trong ví dụ này, nếu isValidAge(age)
trả về false
, thì điều kiện age >= 18
sẽ không được kiểm tra, do đó tiết kiệm thời gian xử lý.
||
)Khi sử dụng phép toán OR
, nếu một trong các biểu thức bên trái là true
, thì kết quả của toàn bộ biểu thức sẽ là true
, và phần bên phải sẽ không được đánh giá.
function isUserLoggedIn(username: string | null): boolean { return username !== null; } const username: string | null = null; const access = isUserLoggedIn(username) || checkGuestAccess(); // checkGuestAccess() sẽ không được kiểm tra console.log(access); // Kết quả: false
Trong ví dụ này, nếu isUserLoggedIn(username)
trả về true
, thì hàm checkGuestAccess()
sẽ không được gọi.
Bằng cách sử dụng short-circuiting, bạn có thể giảm thiểu số lần đánh giá các biểu thức phức tạp hoặc tốn kém, từ đó tối ưu hóa hiệu suất của ứng dụng.
Short-circuiting có thể giúp ngăn chặn các lỗi không mong muốn, như lỗi undefined
hoặc null
, khi truy cập vào các thuộc tính hoặc phương thức của một đối tượng mà có thể không tồn tại.
interface User { name: string; age?: number; } const user: User | null = null; const userName = user && user.name; // Nếu user là null, user.name sẽ không được kiểm tra console.log(userName); // Kết quả: false
Bạn có thể sử dụng short-circuiting để cung cấp giá trị mặc định khi một biến không được định nghĩa hoặc có giá trị falsy.
const username: string | null = null; const displayName = username || 'Guest'; // Nếu username là null, 'Guest' sẽ được sử dụng console.log(displayName); // Kết quả: 'Guest'
Short-circuiting trong TypeScript là một kỹ thuật hữu ích giúp tối ưu hóa hiệu suất và đảm bảo an toàn khi đánh giá các biểu thức logic. Bằng cách tận dụng tính năng này, bạn có thể giảm thiểu số lần đánh giá các biểu thức không cần thiết, ngăn chặn lỗi không mong muốn, và cung cấp giá trị mặc định cho các biến không xác định.