泛型指的任意类型 劣势:放弃了类型检查 优势: 既有类型检查有可以传入任意类型

1-1 泛型函数

  1. function getStr<T>(msg:T){
  2. console.log(msg);
  3. }
  4. getStr<string>("hello");
  5. getStr<object>({name:"lisi"});

1-2 约束泛型

  1. function echoWithArr<T>(arg:T []){
  2. console.log(arg);
  3. }
  4. echoWithArr<string>(["html"]);
  5. echoWithArr<number>([1234]);

1-3 泛型类

  1. class NumList<T>{
  2. public list:Array<T> = [];
  3. add(val:T){
  4. this.list.push(val);
  5. }
  6. }
  7. var nums = new NumList<number>();
  8. nums.add(1);
  9. nums.add(2);
  10. console.log(nums);
  11. var strs = new NumList<string>();
  12. strs.add("html")
  13. strs.add("css");
  14. console.log(strs);

1-4 泛型类

A 对象类型接口

  1. interface attrs<T,U>{
  2. name:T,
  3. age:U
  4. }
  5. var obj:attrs<string,number> = {name:"lisi",age:10}