TypeScript里面的泛型

泛型

function createArray(length:number, value: T):T[] {
  let result = []
  for(let i = 0; i < length; i++) {
    result.push(value)
  }
  return result
}

createArray(4, 'x')

泛型类

class MyArray {
  private list: T[] = [];
  add(value: T) {
    this.list.push(value)
  }
}

let arr = new MyArray()
arr.add(100)

泛型接口

interface CreateArrayFunc {
  (length: number, value: T): T[]
}

let createArray: CreateArrayFunc = function (length: number, value: T): T[] {
  let result = []
  for (let i = 0; i < length; i++) {
    result.push(value)
  }
  return result
}

createArray(4, 'x')

泛型类型别名

type Cart = {list:T[]} | T[];
let c1:Cart = {list:['1']};
let c2:Cart = [1];

泛型约束

interface Lengthwise {
    length: number;
}

function loggingIdentity(arg: T): T {
    console.log(arg.length);
    return arg;
}

你可能感兴趣的:(typescript,typescript)