Skip to content
On this page

泛型

泛型可以让我们定义的类型更加灵活

泛型的使用

ts
function fn(arg: number): number {
  return arg
}
function fn(arg: string): string {
  return arg
}
function fn(arg: boolean): boolean {
  return arg
}

上面这种做法非常的不灵活,当我们需要实现一个函数作用的时候,你希望他支持很多的类型,那么你可以使用泛型

ts
// 泛型搞定
function fn<T>(arg: T): T {
  return arg
}

class 使用

ts
class User<T> {
  constructor(public name: T) {}
}

const user = new User<string>("张三")
const root = new User<number>(1007)

泛型的继承

ts
interface user {
  name: string
  age: number
}

class User<T extends user> {
  constructor(public user: T) {}
}

const user = new User<user>({ name: "张三", age: 18 })