泛型T

复制代码
// 泛型: 动态类型
// 用泛型整合下面2个函数为一个函数
function A(a:number,b:number):number[] {
  return [a,b]
}
function B(a:string,b:string):string[] {
  return [a,b]
}
// T是自定义的,只是常用T,用其他代替也行,使用泛型去代替未确定的类型
function C<T>(a:T,b:T):Array<T> {
  return [a,b]
}
// 此时调用时会自动推断该类型,传入不同类型都可以
C('1','4')
C(1,4)

// 可以使用多个泛型
function D<T,K>(a:T,b:K):Array<T | K> {
  return [a,b]
}
D(1,'5')

// 可以传入默认值
function Y<T = number,K = boolean>(a:T,b:K):Array<T | K> {
  return [a,b]
}
//Y() // 此时会推断参数为number和boolean
Y('222',{}) // 传入其他类型会被覆盖

// type使用泛型
type E<T> = string | number | T
const G:E<boolean> = true // 此时type E = string | number | boolean

// interface使用泛型
interface H<T> {
  msg: T
}
const K:H<string> = {
  msg: '通过了'
}
复制代码

 

posted on   ChoZ  阅读(1)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示