泛型接口
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);
})()
