泛型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 2025-02-15 15:22  ChoZ  阅读(2)  评论(0编辑  收藏  举报

导航