了解TypeScript中的類型別名(TypeAlias)功能

了解TypeScript中的類型別名(TypeAlias)功能

TypeScript 類型別名(type alias) 是 TypeScript 中一個很有用的功能,它可以讓我們將一個已經存在的類型定義為一個新的名稱,以便於我們在程式碼中使用。

TypeScript 類型別名的基本語法

TypeScript 類型別名的基本語法如下:

type aliasName = existingType;

其中,aliasName 是新的類型別名,existingType 是已經存在的類型,可以是任何 TypeScript 支援的類型,例如:

type StringOrNumber = string | number;

上面的程式碼定義了一個新的類型別名 StringOrNumber,它表示可以是字串或數字。

閱讀全文

了解TypeScript中的Classes修飾符

了解TypeScript中的Classes修飾符

TypeScript 類(classes)的修飾符

TypeScript 是一種由 Microsoft 開發的 JavaScript 的超集,它提供了類型系統和 ES6 的特性,讓開發者可以更容易地開發出可維護的程式碼。在 TypeScript 中,類(classes)的修飾符是一種可以改變類的行為的特性,它可以改變類的訪問權限,以及類的屬性和方法的行為。

什麼是類(classes)的修飾符

類(classes)的修飾符是一種可以改變類的行為的特性,它可以改變類的訪問權限,以及類的屬性和方法的行為。TypeScript 支持三種類(classes)的修飾符:publicprotectedprivate

public

public 修飾符是默認的修飾符,它表示該屬性或方法可以被外部訪問。

class Animal {
  public name: string;
  public constructor(theName: string) {
    this.name = theName;
  }
  public move(distanceInMeters: number) {
    console.log(`{this.name} moved{distanceInMeters}m.`);
  }
}

let animal = new Animal("Cat");
animal.move(10);

protected

protected 修飾符表示該屬性或方法只能被該類或其子類訪問。

class Animal {
  protected name: string;
  protected constructor(theName: string) {
    this.name = theName;
  }
}

class Cat extends Animal {
  constructor(name: string) {
    super(name);
  }
  public move(distanceInMeters: number) {
    console.log(`{this.name} moved{distanceInMeters}m.`);
  }
}

let cat = new Cat("Cat");
cat.move(10);

private

private 修飾符表示該屬性或方法只能被該類訪問,不能被其子類訪問。

class Animal {
  private name: string;
  private constructor(theName: string) {
    this.name = theName;
  }
}

class Cat extends Animal {
  constructor(name: string) {
    super(name);
  }
}

let cat = new Cat("Cat");

總結

TypeScript 中的類(classes)的修飾符可以改變類的訪問權限,以及類的屬性和方法的行為。它支持三種類(classes)的修飾符:publicprotectedprivatepublic 修飾符是默認的修飾符,它表示該屬性或方法可以被外部訪問;protected 修飾符表示該屬性或方法只能被該類或其子類訪問;private 修飾符表示該屬性或方法只能被該類訪問,不能被其子類訪問。

閱讀全文

深入探討TypeScript中的類型斷言、類型守衛與類型別名

深入探討TypeScript中的類型斷言、類型守衛與類型別名

TypeScript 是一種由 Microsoft 開發的 JavaScript 的超集,它擁有強大的類型系統,可以讓開發者在開發時更加安全可靠。在 TypeScript 中,有三種類型的工具可以幫助開發者更好地管理類型:類型斷言、類型守衛和類型別名。本文將詳細介紹這三種工具,並比較它們之間的差異。

TypeScript 類型斷言

TypeScript 類型斷言是一種語法,可以讓開發者在程式碼中指定一個變數的類型,以便 TypeScript 編譯器可以更好地檢查程式碼的正確性。它的語法如下:

let someValue: any = "this is a string";

let strLength: number = (someValue).length;

在上面的程式碼中,我們宣告了一個變數 someValue,它的類型是 any,然後我們使用類型斷言的語法,將 someValue 的類型斷言為 string,這樣 TypeScript 編譯器就可以檢查 someValue 的類型是否正確,並且可以正確地計算出 someValue 的長度。

TypeScript 類型守衛

TypeScript 類型守衛是一種語法,可以讓開發者在程式碼中檢查一個變數的類型,並基於該類型做出不同的操作。它的語法如下:

let someValue: any = "this is a string";

if (typeof someValue == "string") {
  let strLength: number = someValue.length;
}

在上面的程式碼中,我們使用 typeof 關鍵字檢查 someValue 的類型是否為 string,如果是,則執行某些操作,否則執行另一些操作。這樣可以確保程式碼的正確性,並且可以正確地計算出 someValue 的長度。

TypeScript 類型別名

TypeScript 類型別名是一種語法,可以讓開發者為一個類型定義一個別名,以便在程式碼中更容易地使用該類型。它的語法如下:

type StringOrNumber = string | number;

let someValue: StringOrNumber = "this is a string";
let strLength: number = (someValue).length;

在上面的程式碼中,我們定義了一個類型別名 StringOrNumber,它表示一個變數可以是 string 或 number 類型。然後我們將 someValue 的類型設置為 StringOrNumber,這樣 TypeScript 編譯器就可以檢查 someValue 的類型是否正確,並且可以正確地計算出 someValue 的長度。

閱讀全文

了解TypeScript中的抽像類功能

了解TypeScript中的抽像類功能

TypeScript 是一種由 Microsoft 開發的 JavaScript 的超集,它擁有更強大的類型系統和更多的功能,可以讓開發者更容易地開發出更健壯的應用程式。在 TypeScript 中,開發者可以使用類(classes)的抽像類(abstract classes)來構建更強大的應用程式。

什麼是類(classes)的抽像類?

類(classes)的抽像類(abstract classes)是一種特殊的類,它不能被實例化,但可以被繼承。它可以包含抽像方法,抽像屬性和具體方法。抽像方法是一種沒有實現的方法,它只有定義,而沒有實現。抽像屬性是一種沒有值的屬性,它只有定義,而沒有值。具體方法是一種有實現的方法,它有定義和實現。

閱讀全文

了解TypeScript中的類(Class)功能

了解TypeScript中的類(Class)功能

TypeScript 類(class)

TypeScript 是一種由微軟開發的 JavaScript 的超集,它擁有 JavaScript 所沒有的特性,其中之一就是類(class)。

什麼是類(class)

類(class)是一種封裝,它可以將屬性和方法組合在一起,封裝成一個類別,可以被重複使用。它可以讓你更有效率的開發程式,而不用重複寫同樣的程式碼。

TypeScript 中的類(class)

TypeScript 中的類(class)可以讓你更有效率的開發程式,它提供了更多的特性,讓你可以更容易的開發出更靈活的程式。

建立類(class)

在 TypeScript 中,可以使用 class 關鍵字來建立一個類別,並且可以使用 constructor 來定義類別的屬性,以及 methods 來定義類別的方法:

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

建立類別的實例

在 TypeScript 中,可以使用 new 關鍵字來建立一個類別的實例:

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

繼承

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

class Student extends Person {
    constructor(name: string, age: number, major: string) {
        super(name, age);
        this.major = major;
    }
    major: string;
    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) {
        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 中的類(class)可以讓你更有效率的開發程式,它提供了更多的特性,讓你可以更容易的開發出更靈活的程式,例如建立類別、建立類別的實例、繼承、靜態屬性和方法等等。

閱讀全文