掌握 TypeScript 類別 (Class) 的 2025 最新語法與最佳實踐

了解TypeScript中的類(Class)功能

目錄

TypeScript 類別 (Class)

TypeScript 是一種由微軟開發的 JavaScript 超集,擁有 JavaScript 所沒有的特性,其中之一就是類別 (Class)。在 2025 年,TypeScript 的類別功能持續進化,提供開發者更靈活的方式來組織和重用程式碼。

什麼是類別 (Class)

類別 (Class) 是一種封裝機制,可以將屬性和方法組合在一起,形成一個可重用的模板。這種封裝使得開發者能夠更高效地撰寫程式,避免重複的程式碼,並提供更好的結構化。

TypeScript 中的類別 (Class)

TypeScript 中的類別提供了更多的特性,讓開發者能輕鬆地創建靈活的程式。以下是一些關鍵特性:

建立類別 (Class)

使用 class 關鍵字來建立一個類別,並使用 constructor 定義類別的屬性,methods 定義類別的方法:

class Person {
    constructor(public name: string, public age: number) {}
    
    sayHello() {
        console.log(`Hello, my name is ${this.name}`);
    }
}

建立類別的實例

使用 new 關鍵字來建立類別的實例:

const person = new Person("John", 20);
person.sayHello(); // Hello, my name is John

繼承

TypeScript 支援類別的繼承,使用 extends 關鍵字來繼承一個類別:

class Student extends Person {
    constructor(name: string, age: number, public major: string) {
        super(name, age);
    }

    sayHello() {
        console.log(`Hello, my name is {this.name}, I'm majoring in{this.major}`);
    }
}

靜態屬性和方法

TypeScript 支援靜態屬性和方法,使用 static 關鍵字來定義:

class Person {
    static species = "Homo sapiens";

    static isAdult(age: number): boolean {
        return age >= 18;
    }

    constructor(public name: string, public age: number) {}

    sayHello() {
        console.log(`Hello, my name is ${this.name}`);
    }
}

console.log(Person.species); // Homo sapiens
console.log(Person.isAdult(20)); // true

錯誤排除

在使用 TypeScript 類別時,常見的錯誤包括:
1. **未定義的屬性**:確保在使用屬性之前已經在類別中定義。
2. **類別實例化錯誤**:確認使用 new 關鍵字正確實例化類別。

延伸應用

類別不僅可以用於簡單的數據結構,還可以與其他 TypeScript 特性結合使用,例如介面 (Interfaces) 和泛型 (Generics),進一步提升代碼的靈活性與可重用性。

結語

TypeScript 的類別功能讓開發者能夠更高效地開發程式,並提供了許多強大的特性,例如建立類別、繼承、靜態屬性和方法等。若想深入了解,請參考官方文檔:[TypeScript 類 (Class)](https://www.typescriptlang.org/docs/handbook/classes.html)。

Q&A(常見問題解答)

Q1: TypeScript 和 JavaScript 的類別有什麼不同?

A1: TypeScript 的類別提供了靜態類型檢查和其他高級特性,讓開發者能更好地管理大型應用程式的結構。

Q2: 如何在 TypeScript 中使用介面與類別結合?

A2: 可以使用介面來定義類別的結構,然後在類別中實現這些介面,這樣可以確保類別遵循特定的結構。

Q3: TypeScript 中的靜態方法有什麼用途?

A3: 靜態方法可以在不實例化類別的情況下直接調用,通常用於執行與類別本身相關但不依賴於特定實例的功能。

發佈留言