亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

typescript中接口與類使用實例分析

發布時間:2022-04-19 16:11:58 來源:億速云 閱讀:150 作者:iii 欄目:開發技術

本篇內容介紹了“typescript中接口與類使用實例分析”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

為了簡便,把typescript簡寫為ts

接口Interface

可能有些同學對于接口比較陌生,在弱類型語言的語言層面很難看到它的蹤影,不像強類型語言,語言層面就考慮到了。但在ts世界里,我們就可以看到它的蹤影了,說白了,它只負責定義,說明你的對象里面有些什么,也就是結構,當然,它就不能夠被實例化了。

定義

那么,該如何定義接口呢,當然是使用關鍵字interface

interface IA {
    name: string
}

以上聲明了接口IA,有個屬性name,為字符串型
這樣,我們就可以給一個變量聲明IA類型并賦值初值

var a: IA = {
    name: 'hello'
}

繼承

接口也是可以繼承的,假如你有個IB接口也包含IA的結構,就可以簡單的繼承它,并擴展自己的屬性

interface IB extends IA {
    id: number
}

類與接口類似,但它除了定義外,還有實現,如給變量賦值,它是可以實例化的

定義

定義的關鍵字是class,相信熟悉es6的同學已經早就用的習以為常了

class A {
    a: string = 'xxxxx'
}

以上定義了類A,它有個字符串類型a,同時給它賦了初值xxxxx,這樣我們可以像下面這樣用,實例化它,并可以引用屬性a

var a = new A()
console.log(a.a)

當然我們也可以修改屬性a

共有,私有,受保護等成員訪問修飾符

屬性有訪問權限之分,哪些成員可以訪問,誰可以訪問

public 也就是誰都可以訪問

private 只有內部成員可以訪問,說白了,就是自帶的函數可以訪問

protected 受保護的,除了自己,繼承了該類的都可以訪問

以上關鍵字一般加在屬性前面,不加的話,就是public

所謂成員,不要僅限于屬性,還包括方法,也叫函數,但是在類中一般都叫方法

class A {
    public a = 'a'
    private b = 'b'
    protected c = 'c'
}

注意,以上聲明的時候沒有給屬性指定類型,這是合法的,因為可以根據后邊的初值推斷出相應的類型

構造函數

說到了類,自然是少不了構造函數,這個函數比較特別,是在實例化的時候調用的,也就是new的時候;強類型語言中一般都是以類名來命名的一個函數,ts中是以constructor來定義和實現的,當然嚴格來說,是js中是這樣規定的。
其實構造函數跟普通函數沒什么區別,可以有參數,函數體里面就是實現,可以給屬性賦初值等操作,改寫以上A,把給a
即使你定義任何構造函數,也會有一個默認構造函數的,只是它什么都沒干

class A {
    a: string
    constructor(arg: string) {
        this.a = arg
    }
}

在ts中,構造函數還有個神奇的功能,那就是在構造函數參數中定義和賦初值,不用在類中重復聲明,在構造函數中賦初值,如下

class A {
    constructor(public a: string)
}

上面我們就定義了A中的一個字符串屬性a,把構造函數的第一個參數賦值給它

繼承

跟接口類似,類繼承也是用關鍵字extends

class B extends A {
    d: number = 1
}

實現接口

類不僅可以繼承已有類,還可以實現接口,要注意的是,接口中的屬性,類中必須有相應的實現
實現的關鍵字是implements

class C implements IA {
    name = 'c'
}

當然你可以實現和繼承同時用,也是沒問題的

class D extends A implements IA {
    name = 'd'
}

靜態成員

普通成員在每個實例中是單獨存在的,而靜態成員是在類中共享的,也就是只有一份,靜態成員聲明的方式是使用關鍵字static

class A {
    static sa = 'nnnn'
}

以上我們就聲明了一個字符串屬性sa,并賦初值nnnn,當需要訪問的時候,只要像下面調用就好了

A.sa

“typescript中接口與類使用實例分析”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁蒗| 潼关县| 达尔| 秭归县| 隆昌县| 天气| 桃园县| 广灵县| 锡林浩特市| 望奎县| 本溪市| 涞水县| 揭东县| 浑源县| 湘阴县| 岢岚县| 沅江市| 佛教| 启东市| 日喀则市| 乌海市| 新泰市| 潞西市| 基隆市| 伊吾县| 苗栗市| 禄丰县| 广灵县| 巴马| 日土县| 乐业县| 吴桥县| 新丰县| 林甸县| 拜城县| 汉中市| 松原市| 济源市| 阿瓦提县| 东阳市| 梁平县|