Bài 6: Làm việc với Type trong TypeScript – Void, Never
Chào mừng các bạn trở lại với series học 15 phút mỗi ngày cùng yeulaptrinh.vn, ở bài viết này, chúng ta sẽ học về 2 kiểu dữ liệu mới trong TypeScript, đó là Void và Never, chúng ta cùng bắt đầu nhé
Nội dung của bài
Void
Nếu các bạn đã làm việc với Java, thì từ khoá void chắc không còn xa lạ gì nữa. void được sử dụng khi không có dữ liệu, nó sẽ không gán với bất cứ giá trị nào.
let result: void
console.log(result) // undefined
result = 1 // Type 'number' is not assignable to type 'void'.ts(2322)
result = "result" //Type 'string' is not assignable to type 'void'.ts(2322)
result = true //Type 'boolean' is not assignable to type 'void'.ts(2322)
result = ["UP", "DOWN", "LEFT", "RIGHT"] //Type 'string[]' is not assignable to type 'void'.ts(2322)
void thường được sử dụng cùng với các hàm thực thi mà không có giá trị trả về, không có kiểu dữ liệu trả về
function greeting(name: string): void {
console.log(`Welcome ${name} to yeulaptrinh.vn` )
}
greeting('Uncle Bob') // Welcome Uncle Bob to yeulaptrinh.vn
Never
Trong TypeScript, never sử dụng để cho biết các giá trị sẽ không bao giờ xảy ra, không nhận giá trị, ví dụ như cho các hàm không bao giờ dừng, chạy vô hạn hoặc luôn luôn trả về exception
function throwError(errorMsg: string): never {
throw new Error(errorMsg);
}
function infiniteLoop(): never {
while (true) {
console.log('Running forever')
}
}
function getResult():never {
console.log('get result')
}
Sự khác nhau giữa void và never
Trong TypeScript, void vẫn có thể là undefined hoặc null trong khi never không nhận bất cứ giá trị nào.
Ta có thể xem ví dụ dưới đây.
let result: void
result = null
result = undefined
let errors: never
errors = null //Type 'null' is not assignable to type 'never'
errors = undefined //Type 'undefined' is not assignable to type 'never'