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.pswp.cn/news/919875.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/919875.shtml
英文地址,請注明出處:http://en.pswp.cn/news/919875.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python本源詩話(我DeepSeek)

物理折行新注釋,直抒胸臆吾志名。 筆記模板由python腳本于2025-08-23 13:14:28創建,本篇筆記適合喜歡python和詩的coder翻閱。 學習的細節是歡悅的歷程 博客的核心價值:在于輸出思考與經驗,而不僅僅是知識的簡單復述。 Python官網…

博士招生 | 美國圣地亞哥州立大學 Yifan Zhang 課題組博士招生,AI 安全領域頂尖平臺等你加入!

內容源自“圖靈學術博研社”gongzhonghao學校簡介圣地亞哥州立大學(San Diego State University, SDSU)是美國加州南部久負盛名的公立研究型大學。學校坐落于科技產業高度活躍的南加州地區,與本地軟件、電信、生物科技、國防及清潔能源等領域…

Day22: Python渦輪增壓計劃:用C擴展榨干最后一絲性能!

目錄🔥 第一章:初識外掛 - ctypes初體驗1.1 C語言渦輪引擎1.2 Python調用秘籍? 第二章:Cython核彈級加速2.1 給Python穿上防彈衣2.2 編譯倒計時2.3 起飛測試🏎? 第三章:終極速度對決3.1 賽前準備3.2 比賽結果&#x…

如何修復“DNS服務器未響應”錯誤

“DNS服務器未響應”是一種常見的網絡錯誤,當設備無法與域名系統(DNS)服務器通信以將域名轉換為IP地址時,就會出現這種錯誤。DNS服務器的作用是將域名轉換為IP地址(例如,將www.example.com轉換為192.168.1.…

數據結構與算法-算法-三數之和

題目: 15. 三數之和 - 力扣(LeetCode)15. 三數之和 - 給你一個整數數組 nums ,判斷是否存在三元組 [nums[i], nums[j], nums[k]] 滿足 i ! j、i ! k 且 j ! k ,同時還滿足 nums[i] nums[j] nums[k] 0 。請你返回所…

ASCOMP PDF Conversa:高效精準的PDF轉換工具

在日常工作和學習中,PDF文件因其格式穩定、兼容性強而被廣泛使用。然而,PDF文件的編輯性較差,常常需要將其轉換為可編輯的格式,如Word文檔。ASCOMP PDF Conversa作為一款功能強大的PDF轉換工具,能夠將PDF文件轉換成可編…

JAVA核心基礎篇-集合

想要了解集合,首先要知道一個東西,叫數據結構。所謂數據結構,其實就是計算機存儲,組織數據的方式。常用的數據結構有8大類數組,鏈表,樹,堆,棧,隊列,哈希表&am…

大模型——深度評測智能體平臺Coze Studio

深度評測智能體平臺Coze Studio 7 月底字節跳動的 Coze-Studio 正式開源,算是 AI 智能體領域的一個大事件。這個月終于有時間在內網環境進行了部署和評測,希望能為團隊的企業知識庫和 AI 應用建設提供多一個選項。 其實,我們廠的知識庫系統一直是自研的。沒有直接采用市面…

UE5打包,LoadObject加載不出網格|動畫

由于筆者UE5加載模型和動畫使用的動態加載(LoadObject),而這些資源(XX001、XX002 等)沒有被任何關卡或藍圖直接引用,在編輯器狀態下是可以正常加載的,但它們在打包時被當作“無用”資源而排除了…

C 語言標準輸入輸出頭文件stdio.h及其常見用法

在這篇文章中,我們來詳細聊一聊 C 語言標準輸入輸出頭文件 stdio.h 及其常見用法。1. stdio.h 是什么 stdio.h(Standard Input and Output Header)是 C 標準庫中的一個頭文件,提供了處理標準輸入輸出和一些文件操作的函數聲明。 它…

Js逆向 拼夕夕anti_content

前言 本文章中所有內容僅供學習交流使用,不用于其他任何目的,不提供完整代碼,抓包內容、敏感網址、數據接口等均已做脫敏處理,嚴禁用于商業用途和非法用途,否則由此產生的一切后果均與作者無關!本文章未經…

大模型時代為什么需要向量數據庫?

這里寫自定義目錄標題1. 向量數據庫2. 向量嵌入3. 特征和向量4. 相似性測量4.1 歐幾里得距離4.2 余弦相似度5. 相似性搜索5.1 K-Means5.2 基于文本嵌入進行意圖匹配6. 問答助手7. 意圖匹配1. 向量數據庫 向量數據庫(Vector Database),也叫矢…

【Canvas與旗幟】二十角金盤德國旗

【成圖】【代碼】<!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>多角金盤德國旗 Draft1</title><style type"text/css&qu…

Linux軟件編程:總結

一、Linux系統概述&#xff08;一&#xff09;Linux系統概述&#xff08;二&#xff09;Linux系統簡介1.常見的Linux系統&#xff1f;2.Linux操作系統是操作系統的核心&#xff0c;也成為內核&#xff0c;內核的主要功能&#xff1f;3.shell是操作系統的外殼&#xff0c;主要作…

【51單片機學習】直流電機驅動(PWM)、AD/DA、紅外遙控(外部中斷)

一、直流電機驅動&#xff08;PWM&#xff09;1.直流電機介紹步進電機的旋轉速度完全由編碼的通電時間決定的&#xff0c;可以用于精密控制。 舵機內部是一個直流電機加一個控制器&#xff0c;引出三根線&#xff0c;分別是正負極和編碼線&#xff0c;根據輸出電平的時間來控制…

ComfyUI Portrait Master肖像大師中文版

本文轉載自&#xff1a;ComfyUI Portrait Master肖像大師中文版 - Hello123工具導航 ** 一、產品定位與技術架構 肖像大師中文版是專為 AI 繪畫工具設計的提示詞生成插件&#xff0c;通過結構化參數控制實現精準人物肖像生成。它基于 ComfyUI 平臺開發&#xff0c;提供 193 國…

(Redis)內存淘汰策略

1. 為什么需要內存淘汰策略&#xff1f;Redis 是一個基于內存的高性能數據庫&#xff0c;所有數據都存儲在內存中。優點&#xff1a;讀寫速度極快。缺點&#xff1a;內存有限&#xff0c;存滿之后如果繼續寫入&#xff0c;就必須有一套策略來決定“刪掉誰&#xff0c;留下誰”。…

Eclipse 里Mybatis的xml的頭部報錯

需要進行Eclipse 配置 MyBatis 的DTD文件Window -> Preference -> Maven -> 勾選 (download artifact javadoc).

SpringBoot Web快速入門_從零搭建你的第一個Web應用

在 Java 企業級開發領域&#xff0c;SpringBoot 以其 “約定優于配置” 的理念徹底革新了傳統 Spring 應用的開發模式。根據 2023 年 JetBrains 開發者調查報告&#xff0c;超 65% 的 Java 開發者將 SpringBoot 選為 Web 開發的首選框架。其優勢顯著&#xff1a;快速啟動&#…

手持 Mid360 + RealSense 相機 + Jetson Orin 一體平臺

這篇博客是我們開源的一個項目介紹&#xff0c;包括3D結構件 STP 文件與常見 SLAM 工程在 Arm 設備上編譯手冊等&#xff0c;將 Livox Mid360、Realsense 相機、Nvidia Jetson Orin、定制電池放在了一個手持設備上&#xff0c;同時這個手持設備預留了底部螺紋孔&#xff0c;當你…