ts泛型接口的使用


泛型接口

console.log('#######泛型接口');
(() =>{
    /* 
     在定義接口時,為接口的屬性或者方法定義泛型類型
     在使用接口時,再指定具體的泛型類型
    
    */

     //需求:定義一個類來存儲用戶的相關信息(id,名字,年齡)
     //通過一個類的實例對象來調用相關(add)的方法可以添加多個用戶信息對象,調用getUersId方法可以根據id獲取某個指定的用戶信息對象

     //定義一個泛型接口
     interface IBaseCURD<T> {
        list:Array<T>
        add:(t:T) => T
        getUersId:(id:number) => T
     }

     // 定義一個用戶信息的類
     class User {
         id?:number //id代表可有可無
         name:string //用戶的姓名
         age:number  //用戶的年齡

         constructor(name,age){
             this.name = name;
             this.age = age
         }
     }

     //定義一個類,可以針對用戶的信息對象進行增加及查詢的操作
     class UserCRUD implements IBaseCURD<User>{
         //用來存多個User類型的用戶信息對象
         list:Array<User> =[]

         add(user:User):User {
             user.id =Date.now() +Math.random()
            //將用戶信息添加到data中
            this.list.push(user)
             return user
         }
            // 根據id查詢用戶信息
         getUersId(id:number):User {
             return this.list.find(item => item.id == id)
         }
         
     }

     const userCURD = new UserCRUD();
     userCURD.add(new User('jack',20))
     
     const {id} = userCURD.add(new User('lance',16))

     userCURD.add(new User('tom',18))

     console.log(userCURD.list);

     const user = userCURD.getUersId(id)
     console.log(user);
     
})()


免責聲明!

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



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