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?
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
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' ]
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
TypeScript có một kiểu dữ liệu mới là never có nghĩa giá trị đó sẽ không xảy ra. Never được sử dụng khi ta chắc chắn việc gì đó không xảy ra. Ví dụ sau chúng ta viết function 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.')
}
}