typescript接口擴展


/*




typeScript中的接口


    接口擴展

   
*/


/*
接口的作用:在面向對象的編程中,接口是一種規范的定義,它定義了行為和動作的規范,在程序設計里面,接口起到一種限制和規范的作用。接口定義了某一批類所需要遵守的規范,接口不關心這些類的內部狀態數據,也不關心這些類里方法的實現細節,它只規定這批類里必須提供某些方法,提供這些方法的類就可以滿足實際需要。 typescrip中的接口類似於java,同時還增加了更靈活的接口類型,包括屬性、函數、可索引和類等。

定義標准。

*/


// 可索引接口:數組、對象的約束  (不常用)



    //ts定義數組的方式
        /*
            var arr:number[]=[2342,235325]


            var arr1:Array<string>=['111','222']
        */



        //可索引接口 對數組的約束
                // interface UserArr{
                //     [index:number]:string
                // }


                // // var arr:UserArr=['aaa','bbb'];

                // // console.log(arr[0]);



                // var arr:UserArr=[123,'bbb'];  /*錯誤*/

                // console.log(arr[0]);


        //可索引接口 對對象的約束




                // interface UserObj{

                //     [index:string]:string
                // }


                // var arr:UserObj={name:'張三'};






//接口擴展:接口可以繼承接口   


    // interface Animal{

    //     eat():void;
    // }

    // interface Person extends Animal{

    //     work():void;
    // }

    // class Web implements Person{

    //     public name:string;
    //     constructor(name:string){
    //         this.name=name;
    //     }

    //     eat(){

    //         console.log(this.name+'喜歡吃饅頭')
    //     }
    //     work(){

    //         console.log(this.name+'寫代碼');
    //     }
        
    // }

    // var w=new Web('小李');

    // w.eat();











    
    interface Animal{

        eat():void;
    }

    interface Person extends Animal{

        work():void;
    }


    class Programmer{

        public name:string;
        constructor(name:string){
            this.name=name;
        }
        
        coding(code:string){

            console.log(this.name+code)
        }
    }


    class Web extends Programmer implements Person{
        
        constructor(name:string){
           super(name)
        }
        eat(){

            console.log(this.name+'喜歡吃饅頭')
        }
        work(){

            console.log(this.name+'寫代碼');
        }
        
    }

    var w=new Web('小李');

    // w.eat();

    w.coding('寫ts代碼');

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM