TypeScript(十六)泛型接口

168 阅读1分钟

一、函数类型接口

之前学习了接口interface,我们来定义一个函数类型的接口

interface outputName {
  (userName: string): string;
}

let outputFn: outputName = (userName: string) => {
  return userName
}

let result = outputFn("小高")
console.log(result)     

如果要改造为泛型的接口,应该怎样做呢?

二、泛型接口

interface outputName {
  <T>(userName: T): T;
}

function outputFn<T>(userName: T): T {
  return userName;
}

let result: outputName = outputFn;

console.log(result<string>("小高"))   

也可以把泛型参数提到接口名上

interface outputName<T> {
  (userName: T): T;
}

function outputFn<T>(userName: T): T {
  return userName;
}

let results: outputName<string> = outputFn;
console.log(results("小高"));