TypeScript的接口 (Interfaces)讲解
把接口(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 帮你检查对错,防止拼错名、传错值。