TypeScript(11泛型)

53 阅读1分钟

定义的时候先不明确类型用<T>站位,使用的时候明确类型 🌰

//不会泛型
function fx(val1: number, val2: number): Array<number> {
  return [val1, val2]
}
fx(1, 2)
function fx1(val1: string, val2: string): Array<string> {
  return [val1, val2]
}
fx1('a', 'b')

//会泛型
 function add6<T>(val1: T, val2: T): Array<T> {
  return [val1, val2]
}
add6<number | string>(1, '3')
add6('1', '3')

多个泛型

function add6<T, U>(val1: T, val2: U): Array<T | U> {
  return [val1, val2]
}
add6(1, '3')

泛型约束

interface Y {
  length: 2
}
function col<T extends Y>(val: T): number {
  return val.length
} 

col(12)