8.泛型.ts 860 B

123456789101112131415161718192021222324252627282930313233
  1. (function(){
  2. // function fn1(name:string):string{
  3. // return name;
  4. // }
  5. // 泛型:用字符去指代未知类型 具体使用时 在传值
  6. function fn1<T>(aa:T):T {
  7. return aa;
  8. }
  9. fn1(12);//传入参数时 ts会自动解析出所传入的类型
  10. fn1<string>("11");//传入参数时 指出类型 写在<>内
  11. // 传入多个值
  12. function fn2<T,X>(a:T,b:X):[T,X] {
  13. return [a,b];
  14. }
  15. fn2<number,string>(11,'哈哈');
  16. // 接口
  17. interface happy {
  18. jump:string
  19. }
  20. // 函数 泛型继承接口
  21. function fn3<T extends happy>(a:T):T{
  22. return a
  23. }
  24. fn3({jump:"就还好"});
  25. // 类 泛型继承接口
  26. class A<T extends happy>{
  27. name:T;
  28. constructor(name:T) {
  29. this.name = name;
  30. }
  31. }
  32. let a = new A({jump:'小猫'})
  33. })()