技术好文:TS中的泛型

简介: 技术好文:TS中的泛型

"

// 1泛型的定义

// 泛型:在软件工程中,我们不仅要创建一致的定义良好的api,同时也要考虑可重用性。组件不仅能够支持当前的数据类型,还能支持未来的数据类型

// 在C#和Java这种语言中,可使用泛型来创建可重用的组件,一个组件支持多种类型的数据

// 2泛型函数

// T表示泛型,具体什么类型调用这个方法的时候决定的

function getData(value:T):T{

return value

}

getData(123)

// 3泛型类

// 比如有个最小堆算法,需//代码效果参考:https://v.youku.com/v_show/id_XNjQwNjgyNTIyMA==.html

要同时支持返回数字和字符串两种类型

// class Minclass{

// public

list:number【】=【】

// add(num){

//

this.list.push(num)

// }

//

min():number{

// var

minNum=this.list【0】

//

for(var i=0;i

//

if(minNum>this.list【i】){

//

minNum = this.list【i】

// }

// }

//

return minNum

// }

// }

// var m = new Minclass()

// m.add(2)

class Minclass{

public

list:T【】=【】

add(value:T):void{

this.list.push(value)

}

min():T{

var

minNum=this.list【0】

for(var

i=0;i

if(minNum>this.list【i】){

minNum = this.list【i】

}

}

return

minNum

}

}

var m = new Minclass()

m.add(2)

// 4泛型接口

// 函数类型接口

// //代码效果参考:https://v.youku.com/v_show/id_XNjQwMDM2ODcwNA==.html

interface Configfn{

//

(value1:string,value2:string):string;

// }

// var

setData:Configfn=function(value1:string,value2:string):string{

// return

value1+value2

// }

// 泛型接口

interface Configfn{

(value:T):T;

}

var setData:Configfn=function(value:T):T{

return value

}


"
image.png
相关文章
|
5月前
|
Web App开发 监控 安全
OSS客户端签名直传实践:Web端安全上传TB级文件方案(含STS临时授权)
本文深入解析了客户端直传技术,涵盖架构设计、安全机制、性能优化等方面。通过STS临时凭证与分片上传实现高效安全的文件传输,显著降低服务端负载与上传耗时,提升系统稳定性与用户体验。
574 2
|
存储 前端开发 JavaScript
React useState 和 useRef 的区别
本文介绍了 React 中 `useState` 和 `useRef` 这两个重要 Hook 的区别和使用场景。`useState` 用于管理状态并在状态变化时重新渲染组件,适用于表单输入、显示/隐藏组件、动态样式等场景。`useRef` 则用于在渲染之间保持可变值而不触发重新渲染,适用于访问 DOM 元素、存储定时器 ID 等场景。文章还提供了具体的代码示例,帮助读者更好地理解和应用这两个 Hook。
449 0
|
编解码 前端开发 JavaScript
使用 CSS 打印样式为 Web 页面设置专业的打印机效果
使用 CSS 打印样式为 Web 页面设置专业的打印机效果
273 2
|
JavaScript
Vue3基础(19)___vite.config.js中配置路径别名
本文介绍了如何在Vue 3的Vite配置文件`vite.config.js`中设置路径别名,以及如何在页面中使用这些别名导入模块。
617 0
Vue3基础(19)___vite.config.js中配置路径别名
|
缓存 前端开发 JavaScript
理解 React 的 Fiber 架构
【8月更文挑战第6天】 理解 React 的 Fiber 架构
874 1
|
JavaScript 前端开发
Vue的高级表格组件库【vxe-table】
Vue的高级表格组件库【vxe-table】
716 0
|
安全 算法 网络安全
HTTPS 的加密流程
HTTPS (Hyper Text Transfer Protocol Secure) 是基于 HTTP 协议之上的安全协议,用于在客户端和服务器之间通过互联网传输数据的加密和身份验证。它使用 SSL/TLS (Secure Sockets Layer/Transport Layer Security) 协议来保护数据的安全性,可以防止数据被窃听、篡改或伪造。
834 3
|
移动开发 前端开发 JavaScript
纯web端实现二维码识别
最近公司的业务场景中有个生成二维码和识别二维码的需求。生成二维码之前有做过,选用的 qrcode.js这个前端库,操作比较简单。这里不再赘述。 刚开始看到二维识别这个需求觉得很简单,以为有相应的前端库直接用就行了。但当真正开始写功能时,发现二维识别会涉及到很多其他的功能。废话不再多说,还是来看看如何实现的吧。
|
JavaScript 安全 Java
【TypeScript】TS泛型
【TypeScript】TS泛型
437 0
|
前端开发
CSS:为什么看起来content-box更合理,但还是经常使用border-box?
CSS:为什么看起来content-box更合理,但还是经常使用border-box?
370 2