※ TypeScript範例說明:
interface ITest {
test1: string
test2: number
print: (arg: string[]) => boolean
}
class Test implements ITest {
public test1: string
public test2: number
constructor(test1: string, test2: number) {
this.test1 = test1
this.test2 = test2
}
print = (arg: string[]) => {
console.log(this.test1, this.test2, arg)
return Boolean(arg.length)
}
}
const testIns = new Test("hello world", 123)
console.info(testIns.print(["33"]))
※ Interface介紹:
- Interface 被稱作介面或是接口。
- 描述結構:interface 是用來描述物件的結構,定義了哪些Property(屬性)和Method(方法)必須存在。
- 不包含實作:interface 只描述屬性和方法,並不包含任何具體的實作細節。
- 用於約定:interface 就像是一個契約,強制實現它的 class 必須按照這個契約來實現所有的Property(屬性)和Method(方法)。否則就會發生錯誤,無法正確編譯。
簡單來說Interface 只做描述,不做動作。
※ Class介紹:
- 實作細節:class 則是具體的實現,定義了物件的具體行為和狀態。它不僅描述了物件應該有什麼樣的屬性和方法,還包括這些方法的具體實現。
- 實現 Interface:Class 使用 implements 關鍵字來指定要實作的介面(interface)。這意味著class 必須提供 interface 中定義的所有屬性和方法的具體實現。
※ Implements介紹:
- implements 關鍵字用於類來實現介面(interface)。
- 目的是確保類(Class)包含介面中所有定義的屬性和方法,否則 TypeScript 編譯器會報錯。
※ Public介紹:
- 如果希望屬性或方法對所有使用者完全公開時使用 public 修飾符。
- 預設值:Class 內描述的 Property(屬性) 預設是 Public。
※ Constructor介紹:
- 用於在建立類的實例時初始化物件。
- 每個類只能有一個構造函數(constructor)。
※ Print介紹: