console.log(getArray(123))
// [ ‘jack’ ]
// [ 123 ]
[]( )多个泛型参数的函数
----------------------------------------------------------------------------
一个函数可以定义多个泛型
function getArray<T,K>(value1: T,value2: K): [T,K] {
return [value1,value2]
}
const arr1=getArray<string,number>(“jack”,100.123)
console.log(arr1[0].split(‘’))
console.log(arr1[1].toFixed(2))
// [ ‘j’, ‘a’, ‘c’, ‘k’ ]
// 100.12
[]( )泛型接口
-----------------------------------------------------------------------
1. 在定义接口时, 为接口中的属性或方法定义泛型类型
2. 在使用接口时, 再指定具体的泛型类型
//定义泛型接口
interface IBaseCRUD{
data:Array<T>,
add:(t: T) => T,
getUserId: (id: number) => T
}
//定义一个用户信息的类
class User{
id ? :number
name: string
age: number
constructor(name:string,age: number) {
this.name =name
this.age = age
}
}
// 定义一个类可以实现用户操作 implements 表示只使用接口 跟extends有区别
class UserCRUD implements IBaseCRUD {
data: Array<User> = [] //定义个数组用于保存用户信息
add(user:User): User{ // 添加操作
user.id= Date.now() + Math.random() // 获取随机id
this.data.push(user) // 添加到数组中
return user
}
getUserId(id: number): User {
return this.data.find(user => user.id ===id) // 根据id查询
}
}
const userCRUD=new UserCRUD()
userCRUD.add(new User(‘jack’,20))
console.log(userCRUD.data)
const {id}=userCRUD.add(new User(‘rose’,22))
console.log(userCRUD.getUserId(id))
/*
-
输出
-
[
-
User { name: ‘jack’, age: 20, id: 1652598623532.2834 },
-
User { name: ‘rose’, age: 22, id: 1652598623532.5269 }
-
]
-
User { name: ‘rose’, age: 22, id: 1652598623532.5269 }
*/
[]( )泛型类
----------------------------------------------------------------------
定义类时,类中属性值是不确定的,方法中的参数和返回值也是不确定的
// 类中先用泛型定义占位
class Generic {
defalutValue: T
add: (K, V) => T
}
//实例初始化时指定类型
const g1: Generic = new Generic()
g1.defalutValue = 100
g1.add = function (k,v){
return k + v
}
console.log(g1.defalutValue)
console.log(g1.add(10,100))
//100
//110
// 新的实例化对象又可以重新指定类型
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!