1 //第一种泛型接口定义 2 interface ConfigFn<T> { 3 (value:T):T; 4 } 5 6 function test<T>(arg:T):T{ 7 return arg; 8 } 9 //第一种泛型接口的定义使用时需要指定泛型类型 10 let myTestInterFace:ConfigFn<string> = test; 11 myTestInterFace('Test Interface') 12 // myTestInterFace(123) 报错 13 14 15 //第二种泛型接口定义 16 interface ConfigFn2 { 17 <T>(value:T):T; 18 } 19 20 function test2<T>(arg:T):T{ 21 return arg; 22 } 23 24 //第二种泛型接口定义使用时不需要指定泛型类型,可以传入任意类型的值 25 let myTestInterFace2:ConfigFn2 = test2; 26 myTestInterFace2('string'); 27 myTestInterFace2(123456); 28 myTestInterFace2([1,2,3,4,5,6])