把接口(Interface)想成一份“說明書”或“合同書”。
-
說明書
比如電飯煲的說明書告訴你:- 必須有“煮飯”按鈕
- 必須有“保溫”功能
- 顏色可以是白、黑、紅
接口在 TypeScript 里干的就是同樣的事:它規定一個對象“長什么樣”。
interface RiceCooker {cook(): void; // 必須有 cook 方法keepWarm(): void; // 必須有 keepWarm 方法color: 'white' | 'black' | 'red'; // 顏色只能是這三個值 }
-
合同書
任何電飯煲只要“簽了這份合同”(實現了這個接口),就必須按上面的要求來。
如果少了按鈕、顏色寫錯,TypeScript 就會像質檢員一樣立刻報錯。const myCooker: RiceCooker = {cook() { console.log('開始煮飯'); },keepWarm() { console.log('保溫中'); },color: 'blue' // ? 報錯:顏色只能是 white/black/red };
implements
就是“簽字畫押”的動作。
- 你把接口當成一份合同(規定好必須有哪些屬性、方法)。
- 寫
class 類名 implements 接口名
,就相當于這個類“簽字”:
“我保證按合同辦事,缺啥補啥,不按要求就報錯。”
舉個通俗例子:
interface 會飛的 {起飛(): void;降落(): void;
}class 飛機 implements 會飛的 {起飛() {console.log('飛機起飛');}降落() {console.log('飛機降落');}
}
- 如果
飛機
少寫了起飛
或降落
,TypeScript 立刻提醒:
“你沒履行合同!”
總結一句話:
implements
讓類“承諾”自己符合某個接口的形狀;不符合就編譯報錯,保證代碼可靠。
接口就是“告訴你對象應該有哪些零件、長什么樣”,幫助 TypeScript 幫你檢查對錯,防止拼錯名、傳錯值。