TypeScript深刻學習

  • 基礎類型
    boolean
    number
    string
    string[]//Array<string> 數組類型(ReadonlyArray<string>數組不能修改,也不容許被賦值給其餘)
    tuple 元組,也就是一個集合[string,number]
    enum枚舉
    顯示下標

    any任意類型
    void函數沒有返回值數組

  • 接口
    一、接口初探
    對象參數嚴格或寬鬆檢查
    二、可選屬性
    添加?

    三、只讀屬性readonly
    readonly數組能夠被修改
    函數

    四、額外的屬性檢查
    as X 鴨子模型(不可靠,由於內部引不到,沒啥用)
    this

    對象從新賦值
    spa

    字符串索引簽名
    code

    [propName:string]:any
    四、函數類型
    對象

    (x:string):boolean函數的參數類型和返回值類型
    六、可索引的類型
    blog

    七、類類型
    實現接口
    implements(以前有提到過,這裏就不作解釋了)繼承


  • 類、繼承
    在繼承的時候若是子類沒有constructor,那就讀取父類的constructor,可是若是父類的constructor須要傳參那就必須傳一下,子類有constructor就必須寫super(),若是父類須要參數還要傳過去,不要就空着就能夠了。
    class Person {
        //成員變量
        name: string
        //構造函數
        constructor(name: string) {
            this.name=name
        }
        //成員函數
        eat():void {
            console.log(this.name)
        }
    }
    class Student extends Person{
        id: number;
        constructor(name:string,id:number) {
            super(name)
        }
        study() {
            console.log(this.id)
        }
    }
    
    const person = new Person("hou")
    console.log(person.name)
    person.eat()
    
    const student = new Student("hh",4)
    console.log(student.name)
    console.log(student.id)
  • 修飾符
    一、public:成員能夠在子類訪問到,實例上也能夠訪問到
    二、private:只能在類本身內部訪問
    三、protected:被保護的類型,在子類訪問到,可是實例上訪問不到

  • 抽象類
    abstract,不能被實例化,只能被繼承
相關文章
相關標籤/搜索