当前位置: 首页 > news >正文

TypeScript的接口 (Interfaces)讲解

把接口(Interface)想成一份“说明书”或“合同书”。

  1. 说明书
    比如电饭煲的说明书告诉你:

    • 必须有“煮饭”按钮
    • 必须有“保温”功能
    • 颜色可以是白、黑、红

    接口在 TypeScript 里干的就是同样的事:它规定一个对象“长什么样”。

    interface RiceCooker {cook(): void;   // 必须有 cook 方法keepWarm(): void; // 必须有 keepWarm 方法color: 'white' | 'black' | 'red'; // 颜色只能是这三个值
    }
    
  2. 合同书
    任何电饭煲只要“签了这份合同”(实现了这个接口),就必须按上面的要求来。
    如果少了按钮、颜色写错,TypeScript 就会像质检员一样立刻报错。

    const myCooker: RiceCooker = {cook() { console.log('开始煮饭'); },keepWarm() { console.log('保温中'); },color: 'blue' // ❌ 报错:颜色只能是 white/black/red
    };
    

implements 就是“签字画押”的动作。

  1. 你把接口当成一份合同(规定好必须有哪些属性、方法)。
  2. class 类名 implements 接口名,就相当于这个类“签字”:
    “我保证按合同办事,缺啥补啥,不按要求就报错。”

举个通俗例子:

interface 会飞的 {起飞(): void;降落(): void;
}class 飞机 implements 会飞的 {起飞() {console.log('飞机起飞');}降落() {console.log('飞机降落');}
}
  • 如果 飞机 少写了 起飞降落,TypeScript 立刻提醒:
    “你没履行合同!”

总结一句话:
implements 让类“承诺”自己符合某个接口的形状;不符合就编译报错,保证代码可靠。

接口就是“告诉你对象应该有哪些零件、长什么样”,帮助 TypeScript 帮你检查对错,防止拼错名、传错值。

http://www.dtcms.com/a/347484.html

相关文章:

  • Python 版本与 package 版本兼容性检查方法
  • 定时任务——ElasticJob原理
  • ChipCamp探索系列 -- 4. Intel CPU的十八代微架构
  • 【背诵2025】测试
  • 数据结构与算法——树和二叉树
  • 【科研绘图系列】浮游植物的溶解性有机碳与初级生产力的关系
  • 大麦APP抢票
  • 数据结构 之 【AVL树的简介与部分实现】(部分实现只涉及AVL树的插入问题,包括单旋((右单旋、左单旋))、双旋(左右单旋、右左单旋)等操作)
  • 国家自然科学基金(国自然基金)申请技巧详解
  • materials studio中的两种坐标系
  • 基于RISC-V架构的国产MCU在eVTOL领域的应用研究与挑战分析
  • leetcode(同向双指针 滑动窗口)209.长度最小的子数组 713.乘积小于K的子数组 3.无重复字符的最长子串
  • 随机森林1
  • 12 SQL进阶-锁(8.20)
  • 我从零开始学习C语言(14)- 基本类型 PART1
  • FRP 内网穿透全流程部署指南 (Windows/Linux)
  • 不必使用 == 和 ===,更严格的相等性判断 API 来了
  • DFT计算入门(materials studio)---Ni金属表面,几何优化
  • 求职推荐大数据可视化平台招聘系统 Vue+Flask python爬虫 前后端分离
  • 【KO】前端面试四
  • leetcode26:删除有序数组中的重复项Ⅰ(快慢指针解法)
  • 【知识】Elsevier论文接收后的后续流程
  • 【数据结构】跳表的概率模型详解与其 C 代码实现
  • 如何用Redis作为消息队列
  • PyQt6 进阶篇:构建现代化、功能强大的桌面应用
  • Java 线程同步解析
  • 坑洼铁皮矫平机:把“波浪”变成“镜面”的科学魔法
  • C++手写智能指针
  • 高等数学 9.1多元函数的基本概念
  • 力扣每日一刷Day 15