一、函数类型接口

  1. interface ConfigFn {
  2. (value1: string, value2: string): string;
  3. }
  4. var setData: ConfigFn = function (value1: string, value2: string): string {
  5. return value1 + value2;
  6. }
  7. setData('name', '张三');

二、泛型接口

  1. // 1.第一种方式
  2. interface ConfigFn {
  3. <T>(value: T): T;
  4. }
  5. var getData: ConfigFn = function <T>(value: T): T {
  6. return value;
  7. }
  8. getData<string>('张三');
  9. // 2.第二种方式
  10. interface ConfigFn<T> {
  11. (value: T): T;
  12. }
  13. function getData<T>(value: T): T {
  14. return value;
  15. }
  16. var myGetData: ConfigFn<string> = getData;
  17. myGetData('20'); // 正确
  18. myGetData(20); // 错误