Menu
×

Được chứng nhận

Ghi lại kiến ​​thức của bạn

Đăng nhập Đăng ký

Tạo Tài khoản Example.com.vn miễn phí để cải thiện trải nghiệm học tập của bạn

Người tìm đường và việc học của tôi

Theo dõi tiến độ học tập của bạn tại Example.com.vn và thu thập phần thưởng

Nâng cấp

Trở thành người dùng PLUS và mở khóa các tính năng mạnh mẽ (không có quảng cáo, lưu trữ, hỗ trợ, ..)

Bắt đầu từ đâu

Bạn không chắc chắn muốn bắt đầu từ đâu? Đi theo con đường được hướng dẫn của chúng tôi

Trình chỉnh sửa mã (Dùng thử)

Với trình chỉnh sửa mã trực tuyến của chúng tôi, bạn có thể chỉnh sửa mã và xem kết quả trong trình duyệt của mình

Video

Tìm hiểu những điều cơ bản về HTML qua video hướng dẫn thú vị và hấp dẫn

Mẫu

Chúng tôi đã tạo một loạt mẫu trang web đáp ứng mà bạn có thể sử dụng - miễn phí!

Web hosting

Lưu trữ trang web của riêng bạn và chia sẻ nó với mọi người với Example.com.vn Spaces

Tạo một máy chủ

Tạo máy chủ của riêng bạn bằng Python, PHP, React.js, Node.js, Java, C#, v.v.

Làm thế nào để

Bộ sưu tập lớn các đoạn mã cho HTML, CSS và JavaScript

Khung CSS

Xây dựng các trang web nhanh và phản hồi bằng cách sử dụng khung W3.CSS miễn phí của chúng tôi

Thống kê trình duyệt

Đọc xu hướng dài hạn của việc sử dụng trình duyệt

Tốc độ gõ

Kiểm tra tốc độ đánh máy của bạn

Đào tạo AWS

Tìm hiểu dịch vụ web của Amazon

Bộ chọn màu

Sử dụng công cụ chọn màu của chúng tôi để tìm các màu RGB, HEX và HSL khác nhau. Bánh xe màu hình tròn thể hiện sự chuyển màu trong quang phổ

Trò chơi mã

Trò chơi mã hóa W3Schools! Giúp linh miêu thu thập nón thông Logo Lynx

Đặt mục tiêu

Nhận hành trình học tập được cá nhân hóa dựa trên các kỹ năng và mục tiêu hiện tại của bạn

Bản tin

Tham gia bản tin của chúng tôi và có quyền truy cập vào nội dung độc quyền mỗi tháng

Việc làm

Thuê những tài năng công nghệ hàng đầu. Hợp lý hóa quy trình tuyển dụng của bạn để có đội ngũ phù hợp hoàn hảo

Lớp học

Hãy liên hệ để sử dụng Example.com.vn Plus và các chứng chỉ với tư cách là một tổ chức giáo dục

×
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP CÁCH W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS AN NINH MẠNG DỮ LIỆU KHOA HỌC

Các lớp TypeScript


TypeScript thêm các loại và công cụ sửa đổi mức độ hiển thị vào các lớp JavaScript.

Tìm hiểu thêm về các lớp JavaScript tại đây .


Thành viên: Loại

Các thành viên của một lớp (thuộc tính và phương thức) được nhập bằng cách sử dụng các chú thích kiểu, tương tự như các biến.

Ví dụ

class Person {
  name: string;
}

const person = new Person();
person.name = "Jane";
Hãy tự mình thử »

Thành viên: Tầm nhìn

Các thành viên trong lớp cũng được cung cấp các sửa đổi đặc biệt ảnh hưởng đến khả năng hiển thị.

Có ba công cụ sửa đổi mức độ hiển thị chính trong TypeScript.

  • public - (mặc định) cho phép truy cập thành viên lớp từ mọi nơi
  • private - chỉ cho phép truy cập vào thành viên lớp từ trong lớp
  • protected - cho phép truy cập vào thành viên lớp từ chính nó và bất kỳ lớp nào kế thừa nó, được đề cập trong phần kế thừa bên dưới

Ví dụ

class Person {
  private name: string;

  public constructor(name: string) {
    this.name = name;
  }

  public getName(): string {
    return this.name;
  }
}

const person = new Person("Jane");
console.log(person.getName()); // person.name isn't accessible from outside the class since it's private
Hãy tự mình thử »
Từ khóa this trong một lớp thường đề cập đến thể hiện của lớp đó. Tìm hiểu thêm về this ở đây .

Thuộc tính tham số

TypeScript cung cấp một cách thuận tiện để xác định các thành viên lớp trong hàm tạo, bằng cách thêm bộ điều chỉnh mức độ hiển thị vào tham số.

Ví dụ

class Person {
  // name is a private member variable
  public constructor(private name: string) {}

  public getName(): string {
    return this.name;
  }
}

const person = new Person("Jane");
console.log(person.getName());
Hãy tự mình thử »

Chỉ đọc

Tương tự như mảng, từ khóa readonly có thể ngăn chặn việc thay đổi thành viên của lớp.

Ví dụ

class Person {
  private readonly name: string;

  public constructor(name: string) {
    // name cannot be changed after this initial definition, which has to be either at it's declaration or in the constructor.
    this.name = name;
  }

  public getName(): string {
    return this.name;
  }
}

const person = new Person("Jane");
console.log(person.getName());
Hãy tự mình thử »

w 3 S c h tôi S C E R T TÔI F TÔI E D . 2 0 2 2

Được chứng nhận!

Hoàn thành các mô-đun TypeScript, làm bài tập, làm bài kiểm tra và được chứng nhận bởi w3schools!!

$45 ĐĂNG KÝ

Kế thừa: Thực hiện

Các giao diện (được đề cập ở đây ) có thể được sử dụng để xác định loại mà một lớp phải tuân theo thông qua từ khóa implements .

Ví dụ

interface Shape {
  getArea: () => number;
}

class Rectangle implements Shape {
  public constructor(protected readonly width: number, protected readonly height: number) {}

  public getArea(): number {
    return this.width * this.height;
  }
}
Hãy tự mình thử »
Một lớp có thể triển khai nhiều giao diện bằng cách liệt kê từng giao diện sau implements , được phân tách bằng dấu phẩy như sau: class Rectangle implements Shape, Colored {

Kế thừa: Mở rộng

Các lớp có thể mở rộng lẫn nhau thông qua từ khóa extends . Một lớp chỉ có thể mở rộng một lớp khác.

Ví dụ

interface Shape {
  getArea: () => number;
}

class Rectangle implements Shape {
  public constructor(protected readonly width: number, protected readonly height: number) {}

  public getArea(): number {
    return this.width * this.height;
  }
}

class Square extends Rectangle {
  public constructor(width: number) {
    super(width, width);
  }

  // getArea gets inherited from Rectangle
}
Hãy tự mình thử »

Ghi đè

Khi một lớp mở rộng một lớp khác, nó có thể thay thế các thành viên của lớp cha có cùng tên.

Các phiên bản mới hơn của TypeScript cho phép đánh dấu rõ ràng điều này bằng từ khóa override .

Ví dụ

interface Shape {
  getArea: () => number;
}

class Rectangle implements Shape {
  // using protected for these members allows access from classes that extend from this class, such as Square
  public constructor(protected readonly width: number, protected readonly height: number) {}

  public getArea(): number {
    return this.width * this.height;
  }

  public toString(): string {
    return `Rectangle[width=${this.width}, height=${this.height}]`;
  }
}

class Square extends Rectangle {
  public constructor(width: number) {
    super(width, width);
  }

  // this toString replaces the toString from Rectangle
  public override toString(): string {
    return `Square[width=${this.width}]`;
  }
}
Hãy tự mình thử »
Theo mặc định, từ khóa override là tùy chọn khi ghi đè một phương thức và chỉ giúp ngăn việc vô tình ghi đè một phương thức không tồn tại. Sử dụng cài đặt noImplicitOverride để buộc sử dụng nó khi ghi đè.

Lớp trừu tượng

Các lớp có thể được viết theo cách cho phép chúng được sử dụng làm lớp cơ sở cho các lớp khác mà không cần phải triển khai tất cả các thành viên. Điều này được thực hiện bằng cách sử dụng từ khóa abstract . Các thành viên không được thực hiện cũng sử dụng từ khóa abstract .

Ví dụ

abstract class Polygon {
  public abstract getArea(): number;

  public toString(): string {
    return `Polygon[area=${this.getArea()}]`;
  }
}

class Rectangle extends Polygon {
  public constructor(protected readonly width: number, protected readonly height: number) {
    super();
  }

  public getArea(): number {
    return this.width * this.height;
  }
}
Hãy tự mình thử »
Các lớp trừu tượng không thể được khởi tạo trực tiếp vì chúng không triển khai tất cả các thành viên của chúng.

Bài tập đánh máy

Kiểm tra bản thân bằng các bài tập

Bài tập:

Chỉ định rằng Person.name chỉ có thể được truy cập trong lớp, nhưng phương thức Person.getName() có thể được truy cập ở bất cứ đâu:

 lớp người {
 tên: chuỗi;

 hàm tạo công khai (tên: chuỗi) {
  this.name = tên;
 }

 getName(): chuỗi {
  trả lại cái này.name;
 }
}

Bắt đầu bài tập


×

Liên hệ bán hàng

Nếu bạn muốn sử dụng dịch vụ của Example.com.vn với tư cách là một tổ chức giáo dục, nhóm hoặc doanh nghiệp, hãy gửi email cho chúng tôi:
[email được bảo vệ]

Báo cáo lỗi

Nếu bạn muốn báo cáo lỗi hoặc nếu bạn muốn đưa ra đề xuất, hãy gửi email cho chúng tôi:
[email được bảo vệ]

Example.com.vn được tối ưu hóa cho việc học tập và đào tạo. Các ví dụ có thể được đơn giản hóa để cải thiện khả năng đọc và học. Các hướng dẫn, tài liệu tham khảo và ví dụ liên tục được xem xét để tránh sai sót, nhưng chúng tôi không thể đảm bảo tính chính xác hoàn toàn của mọi nội dung. Khi sử dụng W3Schools, bạn đồng ý đã đọc và chấp nhận các điều khoản sử dụng , chính sách cookie và quyền riêng tư của chúng tôi.

Bản quyền 1999-2024 của Refsnes Data. Đã đăng ký Bản quyền. Example.com.vn được cung cấp bởi W3.CSS .