Chuyển đến nội dung chính
Mô-đun 1 · Bài học 1 trong tổng số 21/14 trong khóa học~10 min
Bài học theo mô-đun (1/2)

Các loại và chú thích nguyên thủy

TypeScript là bộ siêu dữ liệu được định kiểu của JavaScript, nghĩa là nó thêm cú pháp kiểu tĩnh lên trên JavaScript hiện có. Trong thời gian chạy, tất cả mã TypeScript được biên dịch thành JavaScript thuần và các loại biến mất hoàn toàn trong quá trình xây dựng.

Nhờ TypeScript, bạn có thể phát hiện lỗi trước khi mã chạy trong trình duyệt, giúp quá trình phát triển của bạn trở nên mạnh mẽ, an toàn và có thể mở rộng hơn.


Các loại nguyên thủy

TypeScript hỗ trợ các kiểu nguyên thủy JavaScript tiêu chuẩn:

  • string: Biểu thị chuỗi ký tự (ví dụ: 'Alice', "Hello").
  • number: Biểu thị các giá trị số, cả số nguyên và số thập phân (ví dụ: 42, 3.14).
  • boolean: Biểu thị giá trị chân lý (true hoặc false).
  • null và undefined: Thể hiện sự vắng mặt có chủ ý hoặc vô ý của một giá trị.
TS
const username: string = 'Alice';
const score: number = 100;
const isActive: boolean = true;

Chú thích và suy luận biến

Trong TypeScript, chúng ta có thể thêm chú thích loại bằng cách sử dụng dấu hai chấm (:) theo sau là loại.

Nếu bạn cố gắng gán một giá trị thuộc loại khác (ví dụ: gán một chuỗi cho age được xác định là number), trình biên dịch TypeScript sẽ ngay lập tức báo lỗi trước khi mã chạy.


Sự nguy hiểm của loại any

Loại any là một lối thoát đặc biệt yêu cầu TypeScript tắt hoàn toàn việc kiểm tra loại cho biến đó.

TS
let data: any = 42;
data = 'Hello'; // No error!
data.nonExistentMethod(); // No error at compile time, but it crashes at runtime!

Việc sử dụng any phủ nhận tất cả lợi ích an toàn của việc sử dụng TypeScript. Nó được coi là một thói quen xấu và hầu như luôn nên tránh trong mã sản xuất.


Chú thích hàm và loại void

Chúng ta có thể chú thích cả tham số và giá trị trả về của hàm:

TS
function calculateTax(price: number, taxRate: number): number {
  return price * taxRate;
}

Nếu một hàm không trả về bất kỳ giá trị nào (ví dụ: nó chỉ trả về console.log), thì kiểu trả về của nó là void:

TS
function logMessage(message: string): void {
  console.log(message);
}

Hãy tự mình thử

Bài tập 1: Các biến được gõ

tập thể dục#ts.m1.l1.e1
Nỗ lực: 0Đang tải…

Khai báo ba biến được nhập rõ ràng: tên người dùng dưới dạng chuỗi có giá trị 'Alice', điểm dưới dạng số có giá trị 100 và isActive dưới dạng boolean với giá trị true. Không sử dụng bất kỳ loại nào.

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

Sử dụng cú pháp: string, : number, và : boolean sau tên của từng biến.

Giải pháp khả dụng sau 3 lần thử

Bài tập 2: Chức năng chào hỏi

tập thể dục#ts.m1.l1.e2
Nỗ lực: 0Đang tải…

Tạo một hàm có tên là chào chấp nhận tên tham số thuộc loại chuỗi và trả về một chuỗi có định dạng 'Xin chào', theo sau là tên. Chỉ định rõ ràng cả loại tham số và loại trả về.

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

Khai báo hàm dưới dạng function hello(name: string): string { ... } và trả về tin nhắn.

Giải pháp khả dụng sau 3 lần thử

Bài tập 3: Bộ chuyển đổi nhiệt độ

tập thể dục#ts.m1.l1.e3
Nỗ lực: 0Đang tải…

Khai báo một hàm có tên celsiusToFahrenheit chấp nhận tham số celsius thuộc loại số và trả về nhiệt độ tương đương tính bằng độ F (số). Công thức là celsius * 9/5 + 32. Chỉ định rõ ràng cả loại tham số và loại trả về.

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

Nhân celsius với 9, chia cho 5, cộng 32 và trả về kết quả với kiểu trả về : number trên hàm.

Giải pháp khả dụng sau 3 lần thử

Bài tập 4: Tính chiết khấu

tập thể dục#ts.m1.l1.e4
Nỗ lực: 0Đang tải…

Tạo một hàm có tên là CalculateDiscount chấp nhận tham số giá thuộc loại số và tham số giảm giáPhần trăm của số loại và trả về giá chiết khấu cuối cùng dưới dạng số. Chỉ định rõ ràng cả loại tham số và loại trả về.

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

Trừ phần trăm chiết khấu chia cho 100 từ 1, sau đó nhân với giá. Đảm bảo chú thích các tham số và trả về giá trị dưới dạng số.

Giải pháp khả dụng sau 3 lần thử