TS 泛型

127 阅读1分钟

泛型类型

  function identity<T>(arg:T):T {
    return arg;
  }
  let myIdentity:<T>(arg:T) => T=identity;
  

也可以使用泛型参数名,只要在数量上和使用方式上能对应上就可以.

  function identity<T>(arg:T):T {
    return arg;
  }
  let myIdentity: <U>(arg:U)=>U=identity;

还可以使用带有调用签名的对象字面量来定义泛型函数:

  function identity<T>(arg:T):T {
    return arg;
  }
  let myIdentity:{<T>(arg: T): T} = identity;

去写第一个泛型接口 我们把上面例子里面的对象字面量拿出来做为一个接口

  interface GenericIdentityFn{
     <T>(arg:T):T;
  }
  function identity<T>(arg:T):T {
     return arg;
  }
  let myIdentity:GenericIdentityFn = identity