typescript入门-泛型

2021-06-11 18:11:40 浏览数 (1)

基础定义

代码语言:javascript复制
function join<T>(list:T[]):string{
  return list.join(',')
}
join<string>(['coco', 'jeck'])

泛型接口

代码语言:javascript复制
interface join {
  <T>(args:T[]):string
}


interface Man<T>{
  name:string
  race:T
}

泛型类

代码语言:javascript复制
class Man<T>{
   name:string
   rece:T
   constructor(name:string, rece:T){
     this.name = name
     this.rece = rece
   }
}
const Coco = new Man<number>('Coco', 1)

泛型约束

代码语言:javascript复制
interface Iprop{
  length:number
}
// 必须包含length属性
function getLength<T extends Iprop>(list:T):number{
  return list.length
}
getLength([1, 2, 3])
getLength({ length: 10 })

使用类类型

代码语言:javascript复制
function create<T>(c: {new(): T; }): T {
    return new c();
}

0 人点赞