Kiểu dữ liệu trong Typescript

Có ba kiểu khác nhau trong TypeScript: any type, Built-intype và User-definedtype.

1. Any type – bất kì loại dữ liệu nào

Any là kiểu dữ liệu tập hợp siêu của tất cả các kiểu dữ liệu trong TypeScript. Cung cấp cho bất kỳ biến nào kiểu any tương đương với việc không tham gia kiểm tra kiểu dữ liệu cho biến.

let myVariable: any = 'This is a string'

2. Built-in types – Kiểu dữ liệu được định nghĩa sẵn

Đây là những kiểu được xây dựng trong TypeScript. Chúng bao gồm number, string, boolean, void, null và undefined.

let num: number = 5;  
let name: string = 'Alex';  
let isPresent: boolean = true;

3. User-defined types – Kiểu dữ liệu do người dùng xác định

Các User-definedloại bao gồm enumclassinterfacearray, và tuple. Chúng ta sẽ nhắc về một số loại phổ biến trong bài viết này.

4. Object-oriented programming – Lập trình hướng đối tượng

TypeScript hỗ trợ tất cả các tính năng của lập trình hướng đối tượng, chẳng hạn như các lớp và giao diện. Khả năng này là một sự thúc đẩy lớn đối với JavaScript – nó luôn gặp khó khăn với chức năng OOP của mình, đặc biệt là kể từ khi các nhà phát triển bắt đầu sử dụng nó cho các ứng dụng quy mô lớn.

5. Class

Trong lập trình hướng đối tượng, class là khuôn mẫu của các đối tượng. class sẽ định nghĩa một đối tượng sẽ trông như thế nào về các tính năng và chức năng của đối tượng đó. Class cũng đóng gói dữ liệu cho đối tượng.

TypeScript có hỗ trợ tích hợp cho các lớp, không được hỗ trợ bởi ES5 và các phiên bản trước đó. Điều này có nghĩa là chúng ta có thể sử dụng class từ khóa để khai báo một cách dễ dàng.

class Car {

// fields  
  model: String;  
  doors: Number;  
  isElectric: Boolean;

constructor(model: String, doors: Number, isElectric: Boolean) {  
    this.model = model;  
    this.doors = doors;  
    this.isElectric = isElectric;  
  }

displayMake(): void {  
    console.log(`This car is ${this.model}`);  
  }

}

Trong ví dụ trên, chúng ta đã khai báo một class Car , cùng với một số thuộc tính của nó, mà chúng ta đang khởi tạo trong constructor. Chúng ta cũng có một phương thức sẽ hiển thị một số thông báo bằng cách sử dụng thuộc tính của nó.

const Prius = new Car('Prius', 4, true);  
Prius.displayMake(); // This car is Prius

Nếu như các bạn đã làm với lập trình hướng đối tượng thì đã quá quen thuộc với các bước trên.

Chúng ta sử dụng từ khóa of new và gọi hàm khởi tạo của lớp và chuyển cho nó các thuộc tính.

Bây giờ đối tượng này Prius có đặc tính riêng của mình modeldoors và isElectric. Đối tượng cũng có thể gọi phương thức của displayMake, phương thức này sẽ có quyền truy cập vào các thuộc tính của Prius.

6. Interface

Khái niệm về interfaces là một tính năng mạnh mẽ khác của TypeScript, cho phép bạn xác định cấu trúc của các biến. Tại nên 1 khuân mẫu bao gồm những đặc điểm đặc trưng để một đối tượng phải tuân theo.

Interfaces được mô tả tốt nhất thông qua một ví dụ thực tế. Vì vậy, giả sử chúng ta có một đối tượng là Car:

const Car = {  
  model: 'Prius',  
  make: 'Toyota',  
  display() => { console.log('hi'); }  
}

Nếu chúng ta nhìn vào đối tượng ở trên và cố gắng trích xuất signature của nó, nó sẽ là:

{  
  model: String,  
  make: String,  
  display(): void  
}

Nếu muốn sử dụng lại signature này, chúng ta có thể khai báo dưới dạng interface. Để tạo interface, chúng tôi sử dụng từ khóa interface.

interface ICar {  
  model: String,  
  make: String,  
  display(): void  
}

const Car: ICar = {  
  model: 'Prius',  
  make: 'Toyota',  
  display() => { console.log('hi'); }  
}

Ở đây, chúng ta đã khai báo một interface được gọi là ICar và tạo một đối tượng CarCar bây giờ liên kết với ICar interface, đảm bảo rằng đối tượng Car xác định tất cả các thuộc tính có trong interface.

Tham khảo: https://viblo.asia/p/5-phut-tim-hieu-nhanh-typescript-cho-nguoi-moi-bat-dau-WAyK8DdpKxX#_iv-data-types-4

Leave a Comment