TypeScript là gì?

phanhao

Member
gemgem
Tham gia
18/03/2025
Bài viết
160
Được Like
0
Coin
0
Points
800
TypeScript (viết tắt là TS) là một ngôn ngữ lập trình mã nguồn mở (OOP) được phát triển và duy trì bởi Microsoft vào năm 2012. TypeScript được xem là một phần mở rộng của JavaScript, sử dụng cú pháp của JavaScript và bổ sung thêm các tính năng mạnh mẽ như kiểu tĩnh và hướng đối tượng để hỗ trợ Type (các kiểu dữ liệu).

Với TypeScript, ta có thể bê nguyên xi code JavaScript vào trong cùng một file và chạy cùng nhau bình thường, bởi vì TypeScript duy trì cú pháp của JavaScript và mở rộng nó bằng một loạt tính năng mới. Nhờ đó mà hiệu năng làm việc được tăng lên đáng kể.

Tuy nhiên một project viết bằng TypeScript cần có compiler (trình biên dịch) để biên dịch những dòng code đó thành JavaScript để browser có thể đọc hiểu được. Tại sao vậy? Nhắc lại kiến thức căn bản đó là browser chỉ hiểu được HTML, CSS và JavaScript, vì vậy cần phải có TypeScript Compiler.

Tại sao cần có TypeScript Compiler

Tính năng của TypeScript

tinh-nang-cua-typescript-1068x617.png


Null Checking

TypeScript hỗ trợ kiểm tra null và undefined thông qua option strictNullChecks. Tính năng này giúp ngăn chặn lỗi do sử dụng giá trị null hoặc undefined trong quá trình phát triển. Bạn có thể chỉ định một biến không được chứa giá trị null hoặc undefined bằng cách sử dụng các kiểu dữ liệu phù hợp.

let name: string | null = null; // cho phép null

let age: number = 25; // không cho phép null

Generics

Generics cho phép bạn định nghĩa các kiểu dữ liệu mà không xác định trước kiểu cụ thể. Điều này giúp xây dựng các hàm, lớp, hoặc interface có thể tái sử dụng mà vẫn đảm bảo tính an toàn về kiểu.

function identity<T>(arg: T): T {

return arg;

}

Access Modifiers

TypeScript hỗ trợ các modifier truy cập (access modifiers) cho thuộc tính và phương thức của lớp, bao gồm: public, protected, và private. Điều này giúp kiểm soát quyền truy cập tới các thuộc tính hoặc phương thức của một lớp.

class Animal {

private name: string;

protected age: number;

public type: string;



constructor(name: string, age: number, type: string) {

this.name = name;

this.age = age;

this.type = type;

}

}

Xem tiếp...

Namespaces

Namespaces trong TypeScript cung cấp cách để tổ chức mã và quản lý các biến, hàm, và lớp trong một không gian tên cụ thể. Điều này giúp giảm thiểu xung đột tên và cải thiện khả năng bảo trì mã.

namespace MyNamespace {

export class MyClass {

greet() {

console.log("Hello from MyNamespace");

}

}

}

Xem tiếp...

Type Annotations

Type Annotations cho phép bạn xác định loại dữ liệu của biến, tham số hàm, và giá trị trả về, giúp TypeScript hiểu rõ hơn về kiểu dữ liệu mà bạn đang làm việc.

let username: string = "user123";

function add(a: number, b: number): number {

return a + b;

}

Static Typing

TypeScript cung cấp kiểu tĩnh, cho phép kiểm tra kiểu dữ liệu tại thời điểm biên dịch. Điều này giúp phát hiện lỗi ngay trước khi mã được chạy, nâng cao độ tin cậy và dễ bảo trì của ứng dụng.

Tất cả các tính năng này kết hợp lại giúp TypeScript trở thành một công cụ hữu ích trong phát triển ứng dụng, đặc biệt khi làm việc với mã nguồn lớn hoặc theo nhóm.

Hỗ trợ OOP (Lập trình hướng đối tượng)

TypeScript hỗ trợ các khái niệm OOP như lớp (classes), kế thừa (inheritance), đa hình (polymorphism), và đóng gói (encapsulation).

Ưu điểm của Typescript là gì?

typescript-la-gi-uu-va-nhuoc-diem-cua-typescript-4.png


TypeScript thật sự thuận tiện và hoàn toàn miễn phí

Đối với loại ngôn ngữ lập trình tĩnh như TypeScript, tất cả những số liệu, thông số của bạn sẽ dễ dàng được lấy hơn nhờ IDE và trình biên dịch.

TypeScript hỗ trợ quá trình tìm kiếm giúp bạn tiết kiệm thời gian kiểm tra lại code, không cần thông qua bất cứ một ai để có thể tìm thông tin dữ liệu, ngoài ra TypeScript làm giảm phần trăm va chạm lỗi trong thời gian vận hành.

Ngoài ra, đây cũng là một trong những phần mềm nổi trội được Microsoft hỗ trợ hoàn toàn miễn phí.

Thao tác nhanh chóng và đơn giản hơn

Ngôn ngữ TypeScript có thao tác khá đơn giản, tiết kiệm thời gian hơn nhưng lại đem đến kết quả tốt đến bất ngờ, nó khắc phục tình trạng xuất hiện lỗi và dễ đọc hơn.

Cụ thể là, đối với ngôn ngữ thông thường người dùng thường thao tác theo các bước như:

  • Restart lại hàm, tạo đối số, hoàn thành đoạn mã
  • Sau khi apply hết các đoạn mã, công cụ cần thiết thì cho vận hành
  • Trong quá trình vận hành nếu phát hiện lỗi thì sửa chữa lại.
Tái cấu trúc

Chắc chắn trong quá trình viết code, các lập trình viên sẽ thường xuyên mắc phải nhiều lỗi nhỏ và cần chỉnh sửa, việc sử dụng TypeScript sẽ giúp bước chỉnh sửa code trở nên dễ dàng hơn nhờ hiệu quả của lệnh Rename Symbol/Find All Occurrences.

Đối với các ngôn ngữ khác, khi muốn sửa chi tiết nào đó thì thường phải thay đổi luôn những tập tin khác nếu có liên quan hoặc sử dụng RegEx

Trong trường hợp người dùng TypeScript muốn nâng cấp hệ thống của mình (thêm hoặc xóa thuộc tính, đổi tên,…) thì TypeScript sẽ giúp bạn tái cấu trúc lại sao cho phù hợp với nhu cầu tìm kiếm của bạn mà không gây náo loạn trong hệ thống. Trong trường hợp code của bạn không match được bất cứ dữ liệu nào thì sẽ được báo đến bạn ngay để được xử lý ổn thỏa.

Giảm tỷ lệ mắc lỗi trong hệ thống

Nhờ vào việc cảnh báo lỗi ngay khi viết code, nên tỷ lệ mắc lỗi trong hệ thống khi sử dụng TypeScript khá thấp, TypeScript sẽ trả lại giá trị null hoặc gợi ý thay đổi chỉnh sửa. Mỗi lần chỉnh sửa sau khi được TypeScript báo lỗi thì phần trăm hệ thống hoạt động mà không mắc phải lỗi là rất cao, có thể dễ dàng thấy được TypeScript giúp người dùng tiết kiệm không ít thời gian để sửa lỗi.

Hạn chế thử nghiệm Boilerplate

Với quy trình kiểm tra và báo lỗi tự động ngay khi code, khi bạn đã chắc chắn rằng các biến dữ liệu của mình nằm ở đúng chỗ thì bạn không cần phải lo hệ thống không vận hành hoặc không cần phải kiểm tra lại nữa.

Điều này sẽ giúp bạn tiết kiệm thời gian, không đặt quá nhiều chú ý vào những thao tác đơn giản cho việc kiểm tra mà có thể tận dụng thời gian tối ưu hơn bằng cách kiểm tra chất lượng logic của hệ thống.

Việc hạn chế được các bước thử nghiệm sẽ giúp tiết kiệm được thời gian hơn, nâng cao hiệu quả công việc của các lập trình viên.
 
Top Bottom