定义

  1. function fn<T>(a: T): T {
  2. return a
  3. }

使用

  1. /*
  2. 不指定泛型,TS可以自动对类型进行推断
  3. */
  4. fn(10) //自动判断泛型为number,则T为number,返回类型也为number
  5. /*
  6. 指定泛型
  7. */
  8. fn<string>('hello')
  9. function fn1<T, K>(a: T, b: K): T {
  10. console.log(b)
  11. return a
  12. }

使用接口

  1. interface inter {
  2. length: number
  3. }
  4. // T entends inter 表示泛型T必须使用inter实现类(子类)
  5. function fn2<T extends inter>(a: T): number {
  6. return a.length
  7. }

类中的泛型

  1. class MyClass<T> {
  2. name: T
  3. constructor(name: T) {
  4. this.name = name
  5. }
  6. }
  7. const p = new MyClass('张三')