TYPESCRIPT 2.X CĂN BẢN
Hàm trong TypeScript Sử dụng hàm generics Sử dụng hàm generics trong TypeScript Sử dụng Array trong TypeScript Sử dụng Tuple trong TypeScript Sử dụng kiểu Array, Tuple, Enum trong TypeScript Interface trong Typescript Hybrid Types với Interface trong TypeScript Khác biệt khi sử dụng 'type' và 'interface' trong TypeScript Cách dùng Enum trong TypeScript Types và interface trong TypeScript Class trong TypeScript Sử dụng Abstract Classes trong TypeScript Sử dụng Interface trong Typescript (phần 2) Sử dụng Casting trong TypeScript Tìm hiểu về Generics trong TypeScript Tìm hiểu về utility types trong Typescript Utility types phổ biến trong Typescript Sử dụng default parameters trong TypeScript Modules trong TypeScript Rest Parameters trong TypeScript Sử dụng Function Overloadings trong TypeScript Sử dụng Type Assertions trong TypeScript Sử dụng Static Methods và Properties trong TypeScript. Sử dụng Access Modifiers trong TypeScript 10 mẹo và thủ thuật hay nhất trong TypeScript 5 Cách giúp bạn loại bỏ "any" trong TypeScript Mapped Types trong TypeScript Dependency Injection trong Typescript 5 ký hiệu khó hiểu cần biết trong TypeScript Cách sử dụng @ts-expect-error trong Typescript Declaration Merging trong TypeScript Tìm hiểu Branded Type trong TypeScript Namespaces trong Typescript Phân biệt Modules và Namespaces trong TypeScript Triple-Slash Directives trong TypeScript là gì? Phần 1: Biến trong TypeScript Phần 2: Biến trong TypeScript Property trong TypeScript Phân tích JSON trong TypeScript Bài tập TypeScript: Các dạng bài tập cơ bản Bài tập TypeScript: Lập trình Hướng đối tượng trong TypeScript Bài tập TypeScript: Kiểu Generic Types trong Typescript Bài tập TypeScript: Các kiểu dữ liệu mảng và tuple. Bài tập TypeScript: Classes và Inheritance trong Typescript Bài 01: TypeScript là gì? TypeScript và Javascript Bài 02: Cài đặt TypeScript Bài 03: TypeScript Basic Types Bài 04: Khai báo biến trong TypeScript Bài 05: Lệnh If Else và Switch Case trong TypeScript Bài 06: Vòng lặp trong TypeScript
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Phần 1: Biến trong TypeScript

Biến, là một khái niệm cơ bản nhưng vô cùng quan trọng trong lập trình TypeScript, đóng vai trò như các "hộp" lưu trữ thông tin và dữ liệu mà mình sử dụng để thực hiện nhiều loại tính toán và xử lý dữ liệu trong quá trình thực thi chương trình. Trong phần này,mình sẽ tìm hiểu sâu về biến trong TypeScript, bao gồm khái niệm cơ bản, cách khai báo biến, kiểu dữ liệu mà biến có thể chứa, cũng như quy tắc đặt tên và các thực hành tốt khi làm việc với biến.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Biến trong TypeScript là gì?

Trong TypeScript, biến là một khái niệm cơ bản được sử dụng để lưu trữ và đại diện cho giá trị dữ liệu. Biến có thể thay đổi giá trị của mình trong quá trình thực thi chương trình. Khi khai báo biến, mình cũng có thể xác định kiểu dữ liệu của biến để TypeScript có thể kiểm tra và bảo vệ kiểu dữ liệu trong quá trình phát triển.

Ví dụ:

let age: number = 25;
let name: string = "John";
let isStudent: boolean = true;

Trong ví dụ trên, đã khai báo ba biến: age với kiểu dữ liệu là số nguyên (number), name với kiểu dữ liệu là chuỗi ký tự (string), và isStudent với kiểu dữ liệu là giá trị logic (boolean). Biến này có thể được sử dụng để lưu trữ và thao tác với các giá trị khác nhau trong quá trình thực thi chương trình TypeScript.

Bài viết này được đăng tại [free tuts .net]

Tính chất cơ bản của biến

Biến có tính chất linh hoạt, có khả năng lưu trữ nhiều giá trị khác nhau trong quá trình thực thi chương trình. Điều này giúp dễ dàng thay đổi, cập nhật thông tin và tối ưu hóa quy trình lập trình.

Lợi ích của việc sử dụng biến trong TypeScript

Việc sử dụng biến không chỉ giúp quản lý thông tin một cách dễ dàng mà còn làm cho mã nguồn trở nên linh hoạt và dễ bảo trì. Đồng thời, biến giúp tạo ra mã nguồn có khả năng tái sử dụng, giảm thiểu việc lặp lại code và tăng cường tính khả năng mở rộng của dự án.

Khai báo Biến trong TypeScript

Sử dụng từ khóa var

Cú pháp và ví dụ:

var x: number = 10;

Trong đoạn mã trên, biến x được khai báo và gán giá trị là 10.

Đặc điểm và hạn chế:

  • var có phạm vi là function-scoped, nghĩa là biến chỉ tồn tại và có thể truy cập trong cùng một hàm.
  • var bị "hoisting", có nghĩa là có thể sử dụng biến trước khi nó được khai báo, nhưng giá trị sẽ là undefined nếu gọi trước khi gán giá trị.

Sử dụng từ khóa let

Cú pháp và ví dụ:

let y: string = "Hello";

Trong đoạn mã trên, biến y được khai báo và gán giá trị là chuỗi "Hello".

Phạm vi và sự khác biệt so với var:

  • let có phạm vi là block-scoped, nghĩa là biến chỉ tồn tại trong cùng một khối mã.
  • let không bị "hoisting", giúp tránh gặp phải các vấn đề liên quan đến sự hiện diện của biến trước khi được khai báo.

Sử dụng từ khóa const

Ý nghĩa và ứng dụng:

const PI: number = 3.14;

Biến PI được khai báo và gán giá trị là 3.14 với từ khóa const, cho biết giá trị này không thể thay đổi sau khi đã gán.

Đặc điểm quan trọng:

  • const giữ cho biến có giá trị không thay đổi, là lựa chọn tốt khi muốn đảm bảo tính không biến đổi của một giá trị.

Kiểu dữ liệu của Biến trong TypeScript

Kiểu dữ liệu nguyên thủy (Primitive Types)

number:

  • Đây là kiểu dữ liệu dùng để biểu diễn số, bao gồm cả số nguyên và số thập phân.
let age: number = 25;

string:

  • Kiểu dữ liệu dùng để biểu diễn chuỗi ký tự.
let name: string = "John";

boolean:

  • Biểu diễn giá trị logic true hoặc false.
let isStudent: boolean = true;

undefined và null:

  • undefined biểu thị biến chưa được gán giá trị.
  • null là một giá trị đặc biệt thường được sử dụng để chỉ đến không có giá trị hoặc giá trị không tồn tại.
let score: undefined | null;

Kiểu dữ liệu phức tạp (Complex Types)

Array:

  • Mảng là một tập hợp có thứ tự của các phần tử cùng kiểu.
let numbers: number[] = [1, 2, 3, 4];

Object:

  • Biểu diễn một đối tượng với các thuộc tính và giá trị tương ứng.
let person: { name: string; age: number } = { name: "Alice", age: 30 };

Tuple:

  • Một mảng có số lượng và kiểu dữ liệu cố định cho từng phần tử.
let coordinates: [number, number] = [10, 20];

Sự linh hoạt của kiểu dữ liệu trong TypeScript

  • TypeScript cho phép sự linh hoạt trong việc đặt kiểu dữ liệu. Biến có thể thay đổi kiểu dữ liệu của mình trong quá trình thực thi.
let dynamicVar: any = 5;
dynamicVar = "hello";
dynamicVar = true;

​Ở đây, biến dynamicVar có thể chứa số, chuỗi, hoặc giá trị boolean tùy thuộc vào ngữ cảnh sử dụng.

Ép kiểu (Type Casting) trong TypeScript

Ép kiểu ngầm định (Implicit Type Casting)

  • Trong một số trường hợp, TypeScript có khả năng tự động chuyển đổi kiểu dữ liệu một cách ngầm định khi không có mất mát thông tin.
let num: number = 5;
let result: number = num + 10; // TypeScript tự động ép kiểu num về number

Ép kiểu tường minh (Explicit Type Casting)

  • Đôi khi, cần phải chủ động ép kiểu dữ liệu, đặc biệt là khi TypeScript không thể suy luận kiểu một cách chính xác.
let input: any = "123";
let convertedInput: number = parseInt(input); // Ép kiểu từ chuỗi sang số

Sự cần thiết và cảnh báo khi ép kiểu.

Sự cần thiết:

  • Ép kiểu thường cần thiết khi muốn thực hiện các phép toán hoặc thao tác cụ thể trên biến với kiểu dữ liệu mong muốn.

Cảnh báo khi ép kiểu:

  • Ép kiểu có thể dẫn đến mất mát dữ liệu. TypeScript cung cấp cảnh báo khi ép kiểu giữa các kiểu không tương thích.
let text: string = "hello";
let num: number = <number>text; // Cảnh báo: "Type 'string' is not assignable to type 'number'."

Trong ví dụ trên, cần ép kiểu từ chuỗi sang số để thực hiện phép cộng. Sử dụng hàm parseInt là một cách tường minh để đảm bảo kiểu dữ liệu đúng đắn và tránh cảnh báo từ TypeScript.

Quy tắc đặt tên Biến trong TypeScript

Quy tắc Camel Case

Trong quy tắc Camel Case, tên biến được viết thường, bắt đầu bằng chữ cái viết thường và mỗi từ tiếp theo bắt đầu bằng chữ cái viết hoa. Ví dụ:

let firstName: string = "John";
let numberOfStudents: number = 20;

Quy tắc Pascal Case

  • Quy tắc Pascal Case giống với Camel Case, nhưng bắt đầu bằng chữ cái viết hoa. Thường được sử dụng cho tên của lớp, hàm, hoặc các biểu thức có tính chất "constructor". Ví dụ:
class Car {
   // ...
}

function CalculateArea() {
   // ...
}

Lợi ích của quy tắc đặt tên đồng nhất

  • Đồng nhất hóa mã nguồn: Việc sử dụng quy tắc đặt tên đồng nhất giúp làm cho mã nguồn trở nên dễ đọc và dễ hiểu hơn.
  • Dễ bảo trì: Khi tất cả các biến được đặt theo một quy tắc, việc bảo trì mã nguồn trở nên thuận lợi hơn.
  • Tính nhất quán: Mã nguồn trở nên nhất quán, giúp cho cả nhóm phát triển làm việc hiệu quả hơn.

Kết bài

Trong phần này, mình đã tìm hiểu chi tiết về khái niệm biến trong TypeScript, một yếu tố cơ bản và quan trọng trong lập trình. Mình đã tìm hiểu về định nghĩa và vai trò của biến, nhận thức về tính chất linh hoạt của chúng, cũng như lợi ích mà việc sử dụng biến mang lại cho quá trình phát triển phần mềm.

Mình đã xem xét cách khai báo biến trong TypeScript sử dụng từ khóa var, let, và const, đi sâu vào đặc điểm và phạm vi của mỗi loại khai báo. Cùng đó, cũng đã tìm hiểu về kiểu dữ liệu của biến, bao gồm kiểu dữ liệu nguyên thủy và phức tạp, với những ví dụ cụ thể.

Ngoài ra, đã bàn luận về khái niệm ép kiểu (Type Casting), với sự phân biệt giữa ép kiểu ngầm định và tường minh, cũng như sự cần thiết và cảnh báo khi thực hiện các thao tác này.

Cuối cùng , đã xem xét quy tắc đặt tên biến trong TypeScript, với Camel Case và Pascal Case, và nhận thức về lợi ích của việc duy trì tính đồng nhất trong mã nguồn.

Phần tiếp theo sẽ tiếp tục khám phá về biến trong TypeScript với các khía cạnh khác như phạm vi, quản lý biến trong hàm, module, và cách sử dụng biến trong các tình huống bất đồng bộ. Hãy tiếp tục đồng hành để hiểu rõ hơn về cách biến đóng vai trò quan trọng trong xây dựng ứng dụng TypeScript.

Cùng chuyên mục:

Bài tập TypeScript: Classes và Inheritance trong Typescript

Bài tập TypeScript: Classes và Inheritance trong Typescript

Bài tập TypeScript: Các kiểu dữ liệu mảng và tuple.

Bài tập TypeScript: Các kiểu dữ liệu mảng và tuple.

Bài tập TypeScript: Kiểu Generic Types trong Typescript

Bài tập TypeScript: Kiểu Generic Types trong Typescript

Bài tập TypeScript: Lập trình Hướng đối tượng trong TypeScript

Bài tập TypeScript: Lập trình Hướng đối tượng trong TypeScript

Bài tập TypeScript: Các dạng bài tập cơ bản

Bài tập TypeScript: Các dạng bài tập cơ bản

Phân tích JSON trong TypeScript

Phân tích JSON trong TypeScript

Property trong TypeScript

Property trong TypeScript

Phần 2: Biến trong TypeScript

Phần 2: Biến trong TypeScript

Triple-Slash Directives trong TypeScript là gì?

Triple-Slash Directives trong TypeScript là gì?

Phân biệt Modules và Namespaces trong TypeScript

Phân biệt Modules và Namespaces trong TypeScript

Tìm hiểu Branded Type trong TypeScript

Tìm hiểu Branded Type trong TypeScript

Namespaces trong Typescript

Namespaces trong Typescript

Declaration Merging trong TypeScript

Declaration Merging trong TypeScript

Cách sử dụng @ts-expect-error trong typescript

Cách sử dụng @ts-expect-error trong typescript

5 ký hiệu khó hiểu cần biết trong TypeScript

5 ký hiệu khó hiểu cần biết trong TypeScript

Dependency Injection trong Typescript

Dependency Injection trong Typescript

Mapped Types trong TypeScript

Mapped Types trong TypeScript

5 Cách giúp bạn loại bỏ

5 Cách giúp bạn loại bỏ "any" trong TypeScript

10 mẹo và thủ thuật hay nhất trong TypeScript

10 mẹo và thủ thuật hay nhất trong TypeScript

Sử dụng Access Modifiers trong TypeScript

Sử dụng Access Modifiers trong TypeScript

Top