Type narrowing là gì?

Noun Programming
narrowing

Thu hẹp kiểu (type narrowing) là quá trình chuyển một kiểu dữ liệu (type) từ kiểu dữ liệu kém ít cụ thể sang kiểu dữ liệu cụ thể hơn. Bên dưới là code ví dụ trong Typescript:


function friends(input: string | number) {
	// code here
}

Hàm (function) trên có thể nhận một số hoặc một chuỗi (string). Giả sử chúng ta muốn thực hiện các hành động khác nhau dựa trên việc input là một số hay một chuỗi. Trong trường hợp này, chúng ta sẽ sử dụng type guard để kiểm tra xem đó là chuỗi hay số, như code dưới đây:


function someFunc(input: string | number) {
  if(typeof input === "string") {
    // do something with the string
    console.log("input is a string");
  }
  
  if(typeof input === "number") {
    // do something with number
    console.log("input is a number");
  }
}

Learning English Everyday