1.Mở đầu

Về bản chất tất cả code Javascript đều có thể chạy được trong Typescript hay nói cách khác  một phiên bản nâng cao của Javascript. JavaScript + more features = Typescript.

Vì vậy, nếu bạn lưu file Javascript(.js) thành Typescript(.ts) thì vẫn hoạt động tốt. Nhưng điều đó không có nghĩa là Typescript  và JavaScript  giống nhau.

Trước khi đi vào tìm hiểu sự khác nhau giữa chúng, chúng ta sẽ tìm hiểu qua đặc điểm của từng loại ngôn ngữ.

2.Javascript

Javascript là một trong những công nghệ phổ biến nhất của web. Ngay từ đầu, nó đã là một phần không thể thiếu của các ứng dụng web làm cho các trang web trở nên động hơn. Không chỉ làm việc với client-site mà nó còn hoạt động trên server-side. Một vài đặc điểm của Javascript:

  • Linh hoạt, động và đa nền tảng.
  • Sử dụng cho cả client-side và server-side.
  • Tốc độ nhanh
  • Hỗ trợ tất cả các trình duyệt.
  • Trình biên dịch JIT (Just-in-Time).

3.Typescript

TypeScript không khác với JavaScript về mặt mục đích nhưng được sử dụng để phát triển các ứng dụng lớn. Nó đi theo hướng OOP, hỗ trợ kế thừa, đóng gói, constructor, abstract, interface, implement, override...v.v. Với TypeScript, ta làm việc với kiểu tĩnh (static type)

class Student {
private name: string;
}

Điều này giúp cho việc debug trở nên thuân tiện hơn. Lỗi về kiểu sẽ được phát hiện trong quá trình viết code hoặc khi biên dịch (compile-time) sang JavaScript. Sau đây là tổng hợp một số đặc điểm của Typescript:

  • Dễ dàng bảo trì và nâng cao năng suất dự án.
  • Sử dụng Static type.
  • Hỗ trợ OOP.
  • Dễ dàng debug và phát hiện ra lỗi.
  • Hỗ trợ ES6 (ECMAScript) cung cấp cú pháp dễ dàng hơn để xử lý các object và các tính năng kế thừa.
  • Rất nhiều text editor và IDE hỗ trợ sẵn hoặc thông qua các plugin để hỗ trợ cú pháp của TypeScript, auto-complete suggestions, bắt lỗi và thậm chí tích hợp sẵn trình biên dịch: Visual Studio Code, Vim, Atom, Emacs …

4.Điều đó có làm Typescript chiếm ưu thế hơn Javascript?

Câu trả lời là KHÔNG.

TypeScript không có cách nào để thay thế hoặc làm cho JavaScript lỗi thời. JavaScript vẫn là ngôn ngữ client-side được yêu thích nhất. Đối với các dự án nhỏ hơn, sử dụng TypeScript có thể là một chi phí vì phải mất thời gian để biên dịch mã thành JavaScript.

JavaScript được chạy trực tiếp trên trình duyệt, vì vậy đối với các đoạn mã nhỏ, việc fix lỗi sẽ dễ dàng hơn. Trong trường hợp của TypeScript, chúng ta cần một IDE thích hợp và phải setup để chạy code.

Vậy khi nào ta nên tích hợp Typescipt vào dự án?

Khi code trở nên lớn, phức tạp để xử lý và dễ bị lỗi, sẽ tốt hơn nếu  bắt được số lỗi trong thời gian biên dịch.

5.Typescript vs Javascript.

TYPESCRIPT JAVASCRIPT
Được phát triển để khắc phục sự phức tạp cho các dự án lớn Tạo trang web động
Lỗi có thể được tìm thấy và sửa chữa trong thời gian biên dịch Lỗi chỉ có thể được tìm thấy lúc run-time
Hỗ trợ cả static và dynamic type Chỉ làm việc với kiểu động (dynamic type)
Chuyển đổi thành JavaScript để phù hợp với các trình duyệt Có thể được sử dụng trực tiếp trong trình duyệt
Có hỗ trợ ES3, ES4, ES5 và ES6 Không hỗ trợ biên dịch ES3, ES4, ES5 hoặc ES6
Ngôn ngữ mạnh mẽ và trực quan gọn gàng, dễ hiểu phù hợp nhất cho các ứng dụng web đơn giản
Kiến thức về script là bắt buộc. Không cần kinh nghiệm về script trước đó.
Cần cài đặt thông qua npm Không cần cài đặt

6.Tổng kết

Thông qua bài chia sẻ, hy vọng sẽ giúp được bạn có cái nhìn tổng quan về hai ngôn ngữ qua đó có những lựa chọn phù hợp trong việc phát triển phần mềm.

Tham khảo:

https://www.guru99.com/typescript-vs-javascript.html

https://www.javatpoint.com/javascript-vs-typescript

https://www.educba.com/typescript-vs-javascript/