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

Sử dụng Static Methods và Properties trong TypeScript

Mục tiêu của bài viết này là tìm hiểu về việc sử dụng Static Methods và Properties trong TypeScript, một khía cạnh quan trọng của ngôn ngữ này. Trong TypeScript, bạn có thể sử dụng cả hai để quản lý và tương tác với các thành phần của lớp mà không cần tạo một đối tượng từ lớp đó.

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.

Mình sẽ bắt đầu bằng việc hiểu rõ về khái niệm của Static Methods và Properties, sau đó sẽ thảo luận về cú pháp cụ thể và cách sử dụng chúng. Bài viết này cũng đề cập đến lợi ích và hạn chế của việc sử dụng Static Methods và Properties, kèm theo các ví dụ minh họa để giúp bạn hiểu rõ cách chúng hoạt động trong các tình huống thực tế.

Hãy cùng bắt đầu tìm hiểu tầm quan trọng của việc sử dụng Static Methods và Properties trong TypeScript.

Static Methods và Properties

Static Methods

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

Trong TypeScript, Static Methods là các phương thức của một lớp (class) mà bạn có thể gọi trực tiếp từ lớp đó mà không cần tạo một thể hiện (instance) của lớp đó. Các phương thức static thường được sử dụng để thực hiện các tác vụ liên quan chung đến lớp hoặc để thực hiện tính toán mà không cần trạng thái của thể hiện cụ thể.

Static Properties

Static Properties là các thuộc tính của một lớp mà bạn có thể truy cập trực tiếp từ lớp đó mà không cần tạo một thể hiện của lớp. Các thuộc tính static thường được sử dụng để lưu trữ thông tin chung của lớp hoặc dữ liệu mà không phụ thuộc vào trạng thái của các thể hiện cụ thể.

Sự khác biệt giữa Static và Instance Methods/Properties

Sự khác biệt chính giữa Static và Instance Methods/Properties nằm ở cách bạn truy cập chúng. Các Static Methods và Properties có thể được truy cập thông qua tên của lớp, trong khi các Instance Methods và Properties phải được truy cập thông qua một thể hiện cụ thể của lớp.

Ví dụ:

class Example {
  static staticMethod() {
    console.log("This is a static method.");
  }

  instanceMethod() {
    console.log("This is an instance method.");
  }

  static staticProperty = "Static Property";
  instanceProperty = "Instance Property";
}

Example.staticMethod(); // Gọi static method trực tiếp từ lớp
const instance = new Example();
instance.instanceMethod(); // Gọi instance method thông qua thể hiện
console.log(Example.staticProperty); // Truy cập static property trực tiếp từ lớp
console.log(instance.instanceProperty); // Truy cập instance property thông qua thể hiện

Trong ví dụ trên, mình có một lớp Example với cả static methods/propertiesinstance methods/properties, và thấy sự khác biệt trong cách truy cập chúng.

Sử dụng Static Methods

Static Methods

Để định nghĩa một Static Method, bạn sử dụng từ khóa static trước tên của phương thức. Bạn có thể gọi Static Methods trực tiếp từ lớp mà không cần tạo thể hiện của lớp.

class MathUtils {
  static add(a: number, b: number): number {
    return a + b;
  }

  static subtract(a: number, b: number): number {
    return a - b;
  }
}

const sum = MathUtils.add(5, 3); // Gọi Static Method add trực tiếp từ lớp MathUtils
const difference = MathUtils.subtract(8, 4); // Gọi Static Method subtract trực tiếp từ lớp MathUtils

Ví dụ trên đã minh họa việc sử dụng Static Methods trong lớp MathUtils để thực hiện phép cộng và phép trừ. Mình có thể gọi các phương thức này trực tiếp từ lớp mà không cần tạo một thể hiện của lớp. Điều này rất hữu ích khi bạn cần thực hiện các tính toán mà không liên quan đến trạng thái của các thể hiện cụ thể của lớp.

Sử dụng Static Properties

Static Properties

Để định nghĩa một Static Property, bạn sử dụng từ khóa static trước tên thuộc tính và khởi tạo giá trị của nó. Để truy cập Static Properties, bạn chỉ cần sử dụng tên của lớp theo sau bởi dấu chấm . và tên của thuộc tính.

class Configuration {
  static appVersion: string = "1.0.0";
  static serverUrl: string = "https://api.example.com";
}

const version = Configuration.appVersion; // Truy cập Static Property appVersion
const server = Configuration.serverUrl; // Truy cập Static Property serverUrl

Ví dụ trên minh họa việc sử dụng Static Properties trong lớp Configuration để lưu trữ thông tin như phiên bản ứng dụng và URL của máy chủ. Mình có thể truy cập các thuộc tính này trực tiếp từ lớp mà không cần tạo một thể hiện của lớp. Điều này rất hữu ích khi bạn muốn lưu trữ các thông tin cố định và có thể truy cập chúng từ bất kỳ đâu trong mã nguồn.

Lợi ích và hạn chế của việc sử dụng Static Methods và Properties

Lợi ích

  • Chia sẻ dữ liệu chung: Static Methods và Properties giúp chia sẻ dữ liệu chung giữa tất cả các thể hiện của một lớp mà không cần tạo nhiều bản sao của cùng một dữ liệu. Điều này làm giảm lượng bộ nhớ được sử dụng.

  • Truy cập dễ dàng: Bạn có thể truy cập Static Methods và Properties từ bất kỳ đâu trong mã nguồn mà không cần tạo thể hiện của lớp. Điều này làm cho việc sử dụng chúng trở nên dễ dàng và thuận tiện.

  • Tối ưu hóa hiệu suất: Khi bạn có dữ liệu mà không thay đổi theo từng thể hiện, việc sử dụng Static Properties giúp tối ưu hóa hiệu suất bằng cách tránh tạo các thể hiện không cần thiết.

Hạn chế

  • Không thể truy cập instance properties: Static Methods và Properties không thể truy cập các thuộc tính hoặc phương thức của các thể hiện của lớp. Điều này có thể làm giảm tính đa hình và tương tác giữa các thể hiện.

  • Không thể ghi đè: Static Methods không thể được ghi đè trong các lớp con. Điều này có thể làm cho việc mở rộng và tùy chỉnh các phương thức trở nên khó khăn.

  • Thích hợp cho dữ liệu chung: Static Methods và Properties thích hợp cho việc lưu trữ và chia sẻ dữ liệu chung. Nếu bạn cần thao tác trên dữ liệu của từng thể hiện riêng lẻ, bạn nên sử dụng instance methods và properties.

Tóm lại, việc sử dụng Static Methods và Properties trong TypeScript có thể giúp quản lý dữ liệu chung và cung cấp tính linh hoạt trong việc truy cập chúng. Tuy nhiên, bạn cần cân nhắc khi áp dụng chúng để đảm bảo tính phù hợp và hiệu quả trong dự án của mình.

Ví dụ về việc sử dụng Static Methods và Properties

Sử dụng Static Methods và Properties trong thực tế

Hãy xem xét một ví dụ về lớp MathUtility trong TypeScript, sử dụng Static Methods và Properties để thực hiện các phép toán toán học cơ bản.

class MathUtility {
  static readonly PI: number = 3.14159;

  static add(a: number, b: number): number {
    return a + b;
  }

  static subtract(a: number, b: number): number {
    return a - b;
  }
}

console.log(MathUtility.PI); // Truy cập Static Property

const sum = MathUtility.add(5, 3); // Gọi Static Method
console.log(`5 + 3 = ${sum}`);

const difference = MathUtility.subtract(10, 7);
console.log(`10 - 7 = ${difference}`);

Trong ví dụ trên,mình đã tạo một lớp MathUtility với hai Static Methods (add và subtract) và một Static Property (PI). Mình có thể truy cập các phương thức và thuộc tính này mà không cần tạo một thể hiện của lớp MathUtility. Static Property PI được sử dụng để lưu trữ giá trị pi, và các phương thức add và subtract thực hiện các phép cộng và trừ hai số.

Việc sử dụng Static Methods và Properties trong trường hợp này giúp quản lý các hàm toán học cơ bản mà không cần tạo thể hiện của lớp MathUtility mỗi lần bạn cần sử dụng chúng. Điều này làm cho mã nguồn ngắn gọn và dễ đọc hơn.

Kết bài

Trong bài viết này,mình đã tìm hiểu về cách sử dụng Static Methods và Properties trong TypeScript. Mình đã tìm hiểu khái niệm của chúng, cú pháp cơ bản, và cách chúng giúp trong việc quản lý mã nguồn TypeScript.

Lợi ích của việc sử dụng Static Methods và Properties bao gồm khả năng quản lý các phương thức và thuộc tính tĩnh mà không cần tạo thể hiện của lớp, giúp việc quản lý mã nguồn dễ dàng hơn và tăng tính bảo mật của kiểu dữ liệu. Tuy nhiên, cũng cần lưu ý rằng chúng có hạn chế trong việc xử lý trường hợp cần sử dụng thể hiện của lớp.

Cuối cùng, mình đã thấy ví dụ minh họa về việc sử dụng Static Methods và Properties trong một tình huống thực tế với lớp MathUtility. Việc này giúp ta hiểu cách sử dụng chúng để quản lý mã nguồn một cách hiệu quả và linh hoạt. Hy vọng rằng bài viết này đã giúp bạn hiểu rõ hơn về việc sử dụng Static Methods và Properties trong TypeScript và cách chúng có thể cải thiện quá trình phát triển phần mềm của bạn.

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

Phần 1: Biến trong TypeScript

Phần 1: 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

Top