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

Viết một lớp Triangle để tính diện tích và chu vi của một tam giác trong TypeScript.

Trong bài này, việc sử dụng lập trình hướng đối tượng cho phép chúng ta tạo các lớp với các thuộc tính và phương thức để thực hiện các tính toán cụ thể. Dưới đây là một bài tập về việc tạo lớp Triangle để tính diện tích và chu vi của một tam giác dựa trên ba cạnh được nhập vào.

Tính diện tích và chu vi tam giác

Tạo file TypeScript

Tạo một file mới, ví dụ triangleExample.ts, và viết đoạn mã sau vào file:

Lớp Triangle:

class Triangle {
    private sideA: number;
    private sideB: number;
    private sideC: number;

    constructor(a: number, b: number, c: number) {
        this.sideA = a;
        this.sideB = b;
        this.sideC = c;
    }

    private isValidTriangle(): boolean {
        return (this.sideA + this.sideB > this.sideC) &&
               (this.sideB + this.sideC > this.sideA) &&
               (this.sideC + this.sideA > this.sideB);
    }

    public getArea(): number {
        if (!this.isValidTriangle()) {
            throw new Error('Tam giác không hợp lệ');
        }
        const s = (this.sideA + this.sideB + this.sideC) / 2;
        return Math.sqrt(s * (s - this.sideA) * (s - this.sideB) * (s - this.sideC));
    }

    public getPerimeter(): number {
        if (!this.isValidTriangle()) {
            throw new Error('Tam giác không hợp lệ');
        }
        return this.sideA + this.sideB + this.sideC;
    }
}

Giải Thích:

  • Constructor: Lớp Triangle có một constructor nhận ba tham số là độ dài của ba cạnh tam giác.

  • Phương thức isValidTriangle(): Kiểm tra xem ba cạnh này có tạo thành một tam giác hợp lệ hay không bằng cách so sánh tổng của hai cạnh bất kỳ có lớn hơn cạnh còn lại không.

  • Phương thức getArea(): Tính diện tích của tam giác bằng công thức Heron khi tam giác là hợp lệ. Nếu tam giác không hợp lệ, nó sẽ ném ra một lỗi thông báo.

  • Phương thức getPerimeter(): Tính chu vi của tam giác bằng tổng độ dài của ba cạnh. Nếu tam giác không hợp lệ, nó cũng sẽ ném ra một lỗi thông báo.

Sử dụng vào lớp Triangle

try {
    const triangle = new Triangle(3, 4, 5);
    console.log('Diện tích tam giác:', triangle.getArea());
    console.log('Chu vi tam giác:', triangle.getPerimeter());
} catch (error) {
    console.error(error.message);
}

Biên dịch và chạy

Sử dụng TypeScript compiler (tsc) để biên dịch file TypeScript thành JavaScript:

tsc triangleExample.ts

Sau khi biên dịch thành công, một file triangleExample.js sẽ được tạo. Bây giờ bạn có thể chạy mã JavaScript này bằng Node.js:

node triangleExample.js

Kết quả sẽ được in ra màn hình terminal hoặc console như sau:

Diện tích tam giác: 6
Chu vi tam giác: 12

Khi chạy đoạn mã trên, nó sẽ tạo một tam giác có ba cạnh là 3, 4, 5 và tính diện tích cũng như chu vi của tam giác đó. Nếu ba cạnh không tạo thành một tam giác hợp lệ, nó sẽ hiển thị thông báo lỗi.

Việc sử dụng lớp Triangle như vậy giúp tính toán diện tích và chu vi của tam giác một cách thuận tiện và dễ dàng trong TypeScript.

test php

Bài giải

-------------------- ######## --------------------

Câu hỏi thường gặp liên quan:

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: 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

Sử dụng Access Modifiers trong TypeScript

Sử dụng Access Modifiers trong TypeScript

Top