Bài 3: Làm việc với Type trong TypeScript – Type Annotation – Primitives, Array, Tuple
Chào các bạn đã quay trở lại với series học 15 phút mỗi ngày cùng yeulaptrinh.vn. Bài viết trước chúng ta đã tìm hiểu về Type, các loại Type, sự quan trọng của nó. Ở bài viết này, chúng ta sẽ đi sâu về các data type trong TypeScript.
Nội dung của bài
Type Annotation
Trong bài trước mình đã nói về việc TypeScript là một typed language, cho nên chúng ta có thể chỉ định type của các biến, các hàm, các tham số. Chúng ta có thể chỉ định bằng cách sử dụng :Type sau chúng.
Như bài viết trước mình đã chia sẻ :
TS = JS + ES + type + features….
Cho nên TypeScript có tất cả các primitive type ( kiểu nguyên thuỷ) của JavaScript: number, string và boolean
Tất cả các biến ở trên đều được khai báo với các kiểu cụ thể, việc này gọi là type annotation. Các biến ở trên không thể gán các loại kiểu dữ liệu khác vào, nếu không sẽ xảy ra lỗi
Việc sử dụng type annotation là để xác định kiểu từ đó kiểm tra kiểu của biến. Tuy là không bắt buộc nhưng việc này đáng được khuyến khích vì một số lý do như sau:
- Phòng tránh được các lỗi liên quan đến data type
- Code dễ đọc hơn, dễ hiểu hơn , chất lượng cao hơn
TypeScript Data Types
Array
TypeScript cho phép chúng ta sử dụng cú pháp để khai báo một mảng, lưu các giá trị khác nhau.
Chúng có thể từ các kiểu dữ liệu khác nhau hoặc được chỉ định là một loại cụ thể.
Chúng ta có thể khai báo kiểu của các phần tử trong mảng bằng cách khai báo : Type[] , nếu không khai báo thì nó mặc định là có thể gán bất kể kiểu dữ liệu nào như trong JavaScript
Một cách khai báo khác cho Array:
Q&A: Như vậy string[] và Array<string> khác nhau ở chỗ nào, nếu các bạn biết thì hãy comment vào bài viết này giúp chúng mình nhé? Còn nếu bạn không biết thì hãy chờ bài viết sau mình sẽ giải thích cụ thể nhé
Giống như JavaScript, chúng ta có thể truy cập vào phần tử cụ thể trong array bằng index của nó
Làm việc với array:
Dưới đây là các method khi làm việc với array tuỳ theo nhu cầu sử dụng mà chúng ta chọn phương thức phù hợp
Method | Description |
---|---|
pop() | Removes the last element of the array and return that element |
push() | Adds new elements to the array and returns the new array length |
sort() | Sorts all the elements of the array |
concat() | Joins two arrays and returns the combined result |
indexOf() | Returns the index of the first match of a value in the array (-1 if not found) |
copyWithin() | Copies a sequence of elements within the array |
fill() | Fills the array with a static value from the provided start index to the end index |
shift() | Removes and returns the first element of the array |
splice() | Adds or removes elements from the array |
unshift() | Adds one or more elements to the beginning of the array |
includes() | Checks whether the array contains a certain element |
join() | Joins all elements of the array into a string |
lastIndexOf() | Returns the last index of an element in the array |
slice() | Extracts a section of the array and returns the new array |
toString() | Returns a string representation of the array |
toLocaleString() | Returns a localized string representing the array |
Tuples
JavaScript không có kiểu tuples, thông thường thì mọi người thường sử dụng Array như một Tuple. TypeScript đã hỗ trợ việc này, tuples có thể được khai báo bằng cách sử dụng : [typeofmember1, typeofmember2, ..] .
Có thể hiểu rằng, tuple là một array đã được cố định size cũng như khai báo kiểu của các phần tử của nó. Trong tuple, chúng ta có thể khai báo chứa bao nhiêu kiểu và phần tử tuỳ thích. Tuy nhiên khi sử dụng thì chúng ta phải gán đúng số lượng phần tử và type cũng như thứ tự tương ứng như đã khai báo, nếu không sẽ xảy ra lỗi.
Thậm chí chúng ta có thể sử dụng tuple làm type cho array
Tuple là array nên tất cả các method array có thì tuple đều có như push(), pop(), concat() …
Q&A: Vi sao chúng ta đã khai báo kiểu dữ liệu tuple cũng như giới hạn số lượng phần tử , mà khi push chúng ta vẫn có thể push được 4 vào trong city? Trả lời chúng mình ở phần binh luận nhé.
Như vậy là chúng ta đi qua về type annotation cũng như một số type từ JS sang type script, mình cũng đã đặt một số câu hỏi dành cho các bạn, hi vọng sẽ nhận được câu trả lời từ các bạn. Hãy cùng chờ đón phần tiếp theo của chúng mình trên yeulaptrinh.vn nhé.