TypeScript 接口(Interfaces) 介紹
TypeScript 是一種 JavaScript 的超集,它擁有 JavaScript 所沒有的特性,其中之一就是接口(Interfaces)。接口可以讓開發者更容易地定義和使用物件的型別,並且可以更有效率地檢查程式碼的型別安全性。
接口(Interfaces) 可以讓開發者定義一個物件的型別,它可以包含屬性、函式、索引器等等,以及它們的型別。例如,我們可以定義一個 Person 接口,它有一個 name 屬性,型別為 string,以及一個 age 屬性,型別為 number:
interface Person {
name: string;
age: number;
}
接著,我們可以定義一個物件,並且指定它的型別為 Person:
let person: Person = {
name: 'John',
age: 30
};
這樣一來,TypeScript 就會檢查 person 物件是否符合 Person 接口的定義,例如 name 屬性是否為 string,age 屬性是否為 number,以及是否有其他多餘的屬性。
接口也可以定義函式,例如,我們可以在 Person 接口中定義一個 sayHello() 函式:
interface Person {
name: string;
age: number;
sayHello(): void;
}
接著,我們可以在 person 物件中實作 sayHello() 函式:
let person: Person = {
name: 'John',
age: 30,
sayHello() {
console.log(`Hello, my name is ${this.name}`);
}
};
接口也可以定義索引器,例如,我們可以定義一個 Person 接口,它有一個 name 屬性,型別為 string,以及一個 age 屬性,型別為 number,以及一個 data 索引器,型別為 string:
interface Person {
name: string;
age: number;
[key: string]: string;
}
接著,我們可以定義一個物件,並且指定它的型別為 Person:
let person: Person = {
name: 'John',
age: 30,
data: '123'
};
這樣一來,TypeScript 就會檢查 person 物件是否符合 Person 接口的定義,例如 name 屬性是否為 string,age 屬性是否為 number,data 索引器是否為 string,以及是否有其他多餘的屬性。
總結來說,TypeScript 接口(Interfaces) 可以讓開發者更容易地定義和使用物件的型別,並且可以更有效率地檢查程式碼的型別安全性。