Typescirpt

TypeScript là một dự án mã nguồn mở được phát triển bởi Microsoft, nó có thể được coi là một phiên bản nâng cao của Javascript bởi việc bổ sung tùy chọn kiểu tĩnh và lớp hướng đối tượng mà điều này không có ở Javascript. TypeScript có thể sử dụng để phát triển các ứng dụng chạy ở client-side (Angular2) và server-side (NodeJS)

TypeScript sử dụng tất cả các tính năng của của ECMAScript 2015 (ES6) như classes, modules. Không dừng lại ở đó nếu như ECMAScript 2017 ra đời thì mình tin chắc rằng TypeScript cũng sẽ nâng cấp phiên bản của mình lên để sử dụng mọi kỹ thuật mới nhất từ ECMAScript. Thực ra TypeScript không phải ra đời đầu tiên mà trước đây cũng có một số thư viện như CoffeScript và Dart được phát triển bởi Google, tuy nhiên điểm yếu là hai thư viện này sư dụng cú pháp mới hoàn toàn, điều này khác hoàn toàn với TypeScript, vì vậy tuy ra đời sau nhưng TypeScript vẫn đang nhận được sự đón nhận từ các lập trình viên.

Tại sao nên sử dụng TypeScript?

  • Dễ phát triển dự án lớn: Với việc sử dụng các kỹ thuật mới nhất và lập trình hướng đối tượng nên TypeScript giúp chúng ta phát triển các dự án lớn một cách dễ dàng.
  • Nhiều Framework lựa chọn: Hiện nay các Javascript Framework đã dần khuyến khích nên sử dụng TypeScript để phát triển, ví dụ như AngularJS 2.0 và Ionic 2.0.
  • Hô trợ các tính năng của Javascript phiên bản mới nhất: TypeScript luôn đảm bảo việc sử dụng đầy đủ các kỹ thuật mới nhất của Javascript, ví dụ như version hiện tại là ECMAScript 2015 (ES6).
  • Là mã nguồn mở: TypeScript là một mã nguồn mở nên bạn hoàn toàn có thể sử dụng mà không mất phí, bên cạnh đó còn được cộng đồng hỗ trợ.
  • TypeScript là Javscript: Bản chất của TypeScript là biên dịch tạo ra các đoạn mã javascript nên ban có thê chạy bất kì ở đâu miễn ở đó có hỗ trợ biên dịch Javascript. Ngoài ra bạn có thể sử dụng trộn lẫn cú pháp của Javascript vào bên trong TypeScript, điều này giúp các lập trình viên tiếp cận TypeScript dễ dàng hơn

Basic types

TypeĐịnh nghĩa
BooleanTrue hoặc false
NumberKiểu số (float hoặc big intergers)
StringKiểu chuỗi
ArrayKiểu mảng, có 2 cách khai báo: let list: number[] = [1, 2] hoặc let list: Array <number> = [1, 2]
ObjectKiểu đối tượng như trên mình đã trình bày
TupleKiểu dữ liệu này cho phép bạn khai bảo một mảng với số lượng phần tử cũng như type của từng phần tử đấy cho trước. Nếu phần tử đấy khác kiểu dữ liệu ban đầu có thể bị báo lỗi. Vd: let x: [string, number]; thì khi bạn sử dụng x bắt buộc phần tử thứ nhất phải là string, phần tử thứ 2 phải là số
UnknownKiểu này khi bạn muốn mô tả một dữ liệu mà chưa biết được trước kiểu dữ liệu của nó.
AnyCũng khá tương tự với Unknown khi chúng ta không biết trước được kiểu dữ liệu, tuy nhiên với any chúng ta có thể truy cập vào thuộc tính mặc dù không tồn tại của nó. Vd let user: any = 1; user.getDown() Chúng ta sẽ không gặp lỗi gì trong trường hợp này. Tuy nhiên khi dùng với unknown chúng ta sẽ bị lỗi let user: unknown = 1; user.getDown() Object is of type 'unknown'.
VoidDùng cho function , có thể function trả ra dữ liệu hoặc không trả ra gì
EnumMột cách đặt tên dễ dàng đọc hơn cho việc hiển thị dữ liệu số hay các biến mặc định

TypeScript Generics là gì?

Trong TypeScript, Generics về cơ bản là một loại công cụ cho phép bạn tạo các thành phần mã có thể sử dụng lại hoạt động với nhiều type khác nhau thay vì chỉ một type duy nhất. Sử dụng Generics là một cách rất an toàn để trao quyền cho các lớp, loại và giao diện để hành động theo cách các tham số hoạt động để bạn có thể dễ dàng sử dụng lại chúng cho tất cả các loại đầu vào. Tuy nhiên, TypeScript Generics không nên bị nhầm với bất kỳ loại nào bạn sẽ thấy sự khác biệt giữa chúng sau này trong bài viết này.

Trong các ngôn ngữ như C # và Java, một trong những công cụ chính trong hộp công cụ để tạo các thành phần có thể sử dụng lại là generic , nghĩa là có thể tạo ra một thành phần có thể hoạt động trên nhiều loại chứ không phải một loại. Điều này cho phép người dùng sử dụng các thành phần này và sử dụng các loại riêng của họ.

Vấn đề đã được minh họa bằng loại any và có thể được giải quyết đúng cách bằng TypeScript Generics. Ý tưởng trung tâm ở đây là sự an toàn, với TypeScript Generics, bạn có thể chỉ định các loại tham số cho các thể hiện của các class, loại hoặc giao diện mà trình biên dịch có thể hiểu và cũng suy ra logic của chúng ta. Bằng cách này, sự an toàn được đảm bảo khi bạn nhận được các lỗi thời gian biên dịch khi bạn có một kiểu không khớp như trong bất kỳ ngôn ngữ nào được gõ.

Cú pháp cho generics giống như thế này:

function identity<T>(arg: T): T {
  return arg;
}

Bạn có thể có nhiều hơn một tham số đầu vào một khai báo chung, chúng chỉ cần được phân tách bằng dấu phẩy như thế này:

class Collection<T, K> {
  private _things:K[];
  constructor() {
    this._things = [];
  }
  add(something: K): void {
    this._things.push(something);
  }
  get(index: number): T {
    console.log(index);
  }
}

Các tham số loại cũng có thể được sử dụng rõ ràng trong các hàm trong các khai báo như thế này:

class Collection {
  private _things:any[];
  constructor() {
    this._things = [];
  }
  add<A>(something: A): void {
    this._things.push(something);
  }
  get<B>(index: number): B {
    return this._things[index];
  }
}

TypeScript hiện tại đang là một ngôn ngữ với cộng đồng lập trình viên ưa thích sử dụng ngày một tăng nhờ sự chặt chẽ, cải thiện những yếu điểm từ Javascript. Typescript là một ngôn ngữ tuyệt vời cho việc phát triển ứng dụng lớn, có tính chặt chẽ vào maintain cao.

Tìm hiểu thêm: https://www.typescriptlang.org

Nguồn: https://viblo.asia

Related Posts