Sử dụng Union Any Void Never any void never trong TypeScript

Giới thiệu nội dung bài viết

Chào các bạn,hôm nay anh sẽ hướng dẫn mọi người về Union Any Void Never là như thế nào?

1. Union là gì

Cho phép chúng ta sử dụng nhiều kiểu dữ liệu cho một biến.

1
2
3
4
5
6
7
8
9
let code: (string | number);
code = 123;   // OK
code = "ABC"; // OK
code = false; // Compiler Error

let empId: string | number;
empId = 111; // OK
empId = "E111"; // OK
empId = true; // Compiler Error
1
2
3
4
5
6
7
8
9
10
11
function displayType(code: (string | number))
{
    if(typeof(code) === "number")
        console.log('Code is number.')
    else if(typeof(code) === "string")
        console.log('Code is string.')
}

displayType(123); // Output: Code is number.
displayType("ABC"); // Output: Code is string.
displayType(true); //Compiler Error: Argument of type 'true' is not assignable to a parameter of type string | number

3. Any là gì

Any sử dụng khi ta không biết kiểu dữ liệu là gì. Thường được sử dụng khi chúng ta gọi một webservice bên ngoài hoặc dịch vụ của nhà phát triển thứ 3.

1
2
3
let something: any = "Hello World!"; 
something = 23;
something = true;

Đoạn code trên sẽ được dịch ra Javascript như sau khi compile

1
2
3
var something = "Hello World!";
something = 23;
something = true;

Chúng ta có thể tạo mảng với any như sau

1
2
3
let arr: any[] = ["John", 212, true]; 
arr.push("Smith"); 
console.log(arr); //Output: [ 'John', 212, true, 'Smith' ] 

4. Void là gì

Cũng giống như Java void được sử dụng để thông báo function không trả về kiểu dữ liệu gì

1
2
3
4
5
6
function sayHi(): void { 
    console.log('Hi!')
} 

let speech: void = sayHi(); 
console.log(speech); //Output: undefined

5. Never là gì

TypeScript có một kiểu dữ liệu mới là never có nghĩa giá trị đó sẽ không xảy ra. Nerver được sử dụng khi ta chắn chắn việc gì đó không xảy ra . Ví dụ sau chúng ta viết functino nó sẽ không bao giờ trả về lỗi vì while luôn true nên vòng lặp while chạy vô hạn không bao giờ bị lỗi

1
2
3
4
5
6
7
8
9
function throwError(errorMsg: string): never { 
            throw new Error(errorMsg); 
} 

function keepProcessing(): never { 
            while (true) { 
         console.log('I always does something and never ends.')
     }
}

Mọi người hãy subcribe kênh youtube dưới đây nhé. Videos về các kỹ năng mềm và lập trình sẽ được cập nhật hằng tuần


Comments