最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Typescript學(xué)習(xí)之接口interface舉例詳解

 更新時(shí)間:2024年03月27日 09:36:44   作者:suoh's?Blog  
TypeScript是JavaScript的一個(gè)超集,主要提供了類型系統(tǒng)和對(duì)ES6+的支持,TypeScript的核心原則之一是對(duì)值所具有的結(jié)構(gòu)進(jìn)行類型檢查,這篇文章主要給大家介紹了關(guān)于Typescript學(xué)習(xí)之接口interface的相關(guān)資料,需要的朋友可以參考下

一、interface的基本含義

TS新增了一個(gè)重要概念:接口, 分為對(duì)象類型接口和函數(shù)類型接口

接口可以約束對(duì)象,函數(shù),類的結(jié)構(gòu)和類型,是一種代碼協(xié)作必須遵守的契約

Interface 是一種描述對(duì)象或函數(shù)的東西。你可以把它理解為形狀,一個(gè)對(duì)象需要有什么樣的屬性,函數(shù)需要什么參數(shù)或返回什么樣的值,數(shù)組應(yīng)該是什么樣子的,一個(gè)類和繼承類需要符合什么樣的描述等等。接下來(lái)具體講解對(duì)象類型接口、函數(shù)類型接口及混合類型接口。

二、對(duì)象類型接口

接口中可定義以下屬性:

確定屬性、可選屬性、只讀屬性、任意屬性(可以通過 as 或 [propName: string]: any 來(lái)制定可以接受的其他額外屬性)

這里我們舉得例子是在vue3中實(shí)現(xiàn)的:

interface Person {
      age: number,// 確定屬性
      name?: string,// 可選屬性(加問號(hào)即可)
      [propName: string]: any,// 任意屬性
      readonly sex: string,// 只讀屬性
}
// 使用接口
const p = ref<Person>({
      age: 20,// 確定屬性,不寫會(huì)報(bào)錯(cuò)
      sex: '女',// 只讀屬性也是確定屬性,不寫會(huì)報(bào)錯(cuò)
      label1: '班花',// 任意屬性1
      label2: '165',// 任意屬性2
})

三、函數(shù)類型接口

Interface 還可以用來(lái)規(guī)范函數(shù)的形狀。Interface 里面需要列出參數(shù)列表返回值類型的函數(shù)定義。寫法如下:

  • 定義了一個(gè)函數(shù)接口
  • 接口接收三個(gè)參數(shù)并且不返回任何值
  • 使用函數(shù)表達(dá)式來(lái)定義這種形狀的函數(shù)
// 函數(shù)類型接口
interface Func {
      // 定于這個(gè)函數(shù)接收兩個(gè)必選參數(shù)都是 number 類型,以及一個(gè)可選的字符串參數(shù) desc,
      // 這個(gè)函數(shù)不返回任何值
      (x: number, y: number, desc?: string): number
}
// 使用
const sum: Func = function (x, y, desc = '') {
      // 等價(jià)于const sum: Func = function (x: number, y: number, desc: string): void {
      console.log(desc, x + y)
}
console.log(sum(1, 2))

四、類 interface

Interface 也可以用來(lái)定義一個(gè)類的形狀。需要注意的是類 Interface 只會(huì)檢查實(shí)例的屬性,靜態(tài)屬性是需要額外定義一個(gè) Interface;

定義類時(shí),可以使類去實(shí)現(xiàn)一個(gè)接口

實(shí)現(xiàn)接口就是使類滿足接口的要求

// 接口繼承接口:繼承一個(gè)新的接口或者類,從父類或者接口繼承所有的屬性和方法
// 不可以重寫屬性,但可以重寫方法 
interface classPerson extends Person1 {
      //在繼承的基礎(chǔ)上新找了個(gè)了一個(gè)teach方法,且返回值是string類型
      teach(): string;
}
// 類實(shí)現(xiàn)接口implements:實(shí)現(xiàn)一個(gè)新的類,從父類活接口實(shí)現(xiàn)所有的屬性和方法,
// 同時(shí)可以重寫屬性和方法,包含一些新的功能
class classPerson2 implements Person1 {
      age = 20
      name = 'suosuo'
      sex = '女'
      say() {
            return '我的全名是小鎖'
      }
}

五、混合類型的 Interface

混合類型的接口就是使用同一個(gè) Interface 來(lái)描述函數(shù)或者對(duì)象的屬性或方法。

// 混合類型接口
interface MixType {
      // 如果只有這么一個(gè),那么這個(gè)接口是函數(shù)接口
      (x: number, y: number): number,
      // 還含有其他方法,那么這個(gè)接口就是混合接口
      add(x: number, y: number): number,
      // 還有另一個(gè)方法
      log(): void,
      (): void
}
// 調(diào)用
function sum() {
      let sum: MixType = (() => { }) as MixType;
      sum.add = (x: number, y: number) => { return x + y }
      sum.log = () => { }
}

const isShowModal = ref(false)
function open() {
      isShowModal.value = true
}

六、總結(jié)

  • 接口就是用來(lái)定義一個(gè)類結(jié)構(gòu),定義一個(gè)類中應(yīng)該包含哪些屬性和方法,同時(shí)接口也可以當(dāng)成類型聲明去使用
  • 接口中的所有的屬性都不能有實(shí)際的值
  • 接口只定義對(duì)象的結(jié)構(gòu),而不考慮實(shí)際值
  • 在接口中所有的方法都是抽象方法

到此這篇關(guān)于Typescript學(xué)習(xí)之接口interface的文章就介紹到這了,更多相關(guān)Typescript接口interface內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • json的結(jié)構(gòu)與遍歷方法實(shí)例分析

    json的結(jié)構(gòu)與遍歷方法實(shí)例分析

    這篇文章主要介紹了json的結(jié)構(gòu)與遍歷方法,結(jié)合具體實(shí)例形式分析了json常見的簡(jiǎn)單與復(fù)雜結(jié)構(gòu)表示方法,以及具體的遍歷操作實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-04-04
  • JS實(shí)現(xiàn)頁(yè)面載入時(shí)隨機(jī)顯示圖片效果

    JS實(shí)現(xiàn)頁(yè)面載入時(shí)隨機(jī)顯示圖片效果

    這篇文章主要介紹了JS實(shí)現(xiàn)頁(yè)面載入時(shí)隨機(jī)顯示圖片效果,涉及javascript基于隨機(jī)數(shù)與數(shù)組的頁(yè)面元素動(dòng)態(tài)修改相關(guān)操作技巧,需要的朋友可以參考下
    2016-09-09
  • JS查找孩子節(jié)點(diǎn)簡(jiǎn)單示例

    JS查找孩子節(jié)點(diǎn)簡(jiǎn)單示例

    這篇文章主要介紹了JS查找孩子節(jié)點(diǎn),結(jié)合完整實(shí)例形式分析了javascript節(jié)點(diǎn)遍歷、查找相關(guān)操作技巧,需要的朋友可以參考下
    2019-07-07
  • JS電梯導(dǎo)航的實(shí)現(xiàn)示例

    JS電梯導(dǎo)航的實(shí)現(xiàn)示例

    本文主要介紹了JS電梯導(dǎo)航的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • JS生成唯一id的多種解決方案(非常實(shí)用)

    JS生成唯一id的多種解決方案(非常實(shí)用)

    在項(xiàng)目開發(fā)中我們常需要給某些數(shù)據(jù)定義一個(gè)唯一標(biāo)識(shí)符,便于尋找關(guān)聯(lián),這篇文章主要給大家介紹了關(guān)于JS生成id的多種解決方案,文中介紹的方法都非常實(shí)用,需要的朋友可以參考下
    2023-10-10
  • 查看Next.js默認(rèn)配置信息的幾種方法

    查看Next.js默認(rèn)配置信息的幾種方法

    文章介紹了幾種查看Next.js默認(rèn)配置信息的方法,包括使用Next.js CLI、getConfigAPI、實(shí)驗(yàn)性CLI命令以及在開發(fā)模式下訪問特定路徑,感興趣的小伙伴跟著小編一起來(lái)看看吧
    2025-02-02
  • javascript不同頁(yè)面?zhèn)髦档母倪M(jìn)版

    javascript不同頁(yè)面?zhèn)髦档母倪M(jìn)版

    改進(jìn)點(diǎn):支持同頁(yè)面有多個(gè)文本框,可自動(dòng)向不同的文本框傳值。先看演示吧
    2008-09-09
  • javascript 數(shù)組精簡(jiǎn)技巧小結(jié)

    javascript 數(shù)組精簡(jiǎn)技巧小結(jié)

    本文給大家分享了13個(gè)非常常用的JavaScript數(shù)組操作的小技巧,有需要的小伙伴可以來(lái)看看,個(gè)人十分推薦.
    2020-02-02
  • JavaScript實(shí)現(xiàn)星星等級(jí)評(píng)價(jià)功能

    JavaScript實(shí)現(xiàn)星星等級(jí)評(píng)價(jià)功能

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)星星等級(jí)評(píng)價(jià)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • 微信小程序自定義時(shí)間段picker選擇器

    微信小程序自定義時(shí)間段picker選擇器

    這篇文章主要為大家詳細(xì)介紹了微信小程序自定義時(shí)間段picker選擇器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07

最新評(píng)論

监利县| 饶阳县| 福贡县| 克什克腾旗| 桓台县| 永顺县| 漳州市| 且末县| 武隆县| 祥云县| 栾川县| 怀来县| 教育| 股票| 临泉县| 剑河县| 新邵县| 潞西市| 女性| 阜南县| 韶山市| 大姚县| 安新县| 都兰县| 承德县| 祁连县| 四会市| 寿宁县| 行唐县| 长武县| 凤翔县| 正安县| 长汀县| 沿河| 乐至县| 淅川县| 唐山市| 沂源县| 女性| 徐汇区| 泾川县|