7.泛型.ts 645 B

1234567891011121314151617181920212223242526272829303132
  1. (function() {
  2. // 泛型:先用字符去指代未知类型 使用时在传入具体的类型
  3. // function fn1<T>(name:T):T {
  4. // return name;
  5. // }
  6. // fn1(12);
  7. // fn1('22');
  8. function fn1<T,W>(name:T,x:W):[T,W] {
  9. return [name,x];
  10. }
  11. fn1(12,12);
  12. fn1('22','ss');
  13. interface happy {
  14. jump:string
  15. }
  16. function fn3<T extends happy>(a:T):T {
  17. return a;
  18. }
  19. fn3({jump:'1212'})
  20. class Ending<T extends happy> {
  21. name:T;
  22. constructor(name:T) {
  23. this.name = name;
  24. }
  25. }
  26. let e = new Ending({jump:'1212'})
  27. // Omit Pick区别
  28. })()