zoukankan      html  css  js  c++  java
  • 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);
         
    })()
    
    

  • 相关阅读:
    Mybatis总结(mybatis plus待更新)
    maven配置(IDEA)quickstart,IDEA上maven细节配置
    (已解决)C3P0数据库使用配置文件链接,报错:com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector run
    angular--ng-template&ngTemplateOutlet的用法

    Array.from()和Array.of()用法
    Object.create()
    继承
    Object类型
    剩余参数
  • 原文地址:https://www.cnblogs.com/malong1992/p/14627979.html
Copyright © 2011-2022 走看看