typescript4-泛型

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前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值