Type Script的泛型(<?>)

在定义类或函数时,如果遇到类型不明确,就可以使用泛型

function fn<T>(a: T): T {
  return a;
}
//可以直接调用具有泛型的函数
let result = fn(10); //不指定类型,TS可以自动对类型进行推断
let result2 = fn<string>("yrq"); //指定类型

泛型可以同时指定多个

function fn2<T, K>(a: T, b: K): T {
  console.log(b);
  return a;
}
fn2<number, string>(123, "hello");

泛型T extends Inter 表示泛型T必须是Inter实现类(子类)

interface Inter {
  length: number;
}

function fn3<T extends Inter>(a: T): number {
  return a.length;
}
fn3("123"); //有length属性
fn3({ length: 10 }); //有length属性

类方法也可以使用泛型:

class MyClass<T> {
  name: T;
  constructor(name: T) {
    this.name = name;
  }
}
const mc = new MyClass<string>("哈哈")
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
dwr开发包,常规客户端服务器端面向对象编程。 基于Spring,在服务器端配置: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr//dwr20.dtd"> <dwr> <allow> <!-- 通过NEW创建对象 --> <create creator="new" javascript="JDate"> <param name="class" value="java.util.Date"/> </create> <!-- 通过Spring反射对象 --> <create creator="spring" javascript="TestService"> <param name="beanName" value="testService" /> </create> </allow> </dwr> 客户端引用: <script type='text/javascript' src='<%=request.getContextPath()%>/dwr/interface/JString.js'></script> <script type='text/javascript' src='<%=request.getContextPath()%>/dwr/interface/JDate.js'></script> <script type='text/javascript' src='<%=request.getContextPath()%>/dwr/interface/TestService.js'></script> <script type='text/javascript' src='<%=request.getContextPath()%>/dwr/engine.js'></script> <script type='text/javascript' src='<%=request.getContextPath()%>/dwr/util.js'></script> 客户端调用JAVA基本类: function getJavaDate(){ JDate.getYear(load); } function load(data){ alert(data+1900+'年') } 客户端调用JAVA自定义反射对象: function getServiceInfo() { TestService.dwrtest('字符串1','字符串2',['数组字符串1','数组字符串2{带&&特殊字符}','数组字符串3{带==特殊字符}'],{"xieyu":"测试键值对"},backservice); } function backservice(result) { alert(result); } 服务器端自定义对象对应方法(dwrtest)编写(采用JDK 1.5编写,如JDK1.4请将去掉): public String dwrtest(String a, String b, List<String> s,Map<String,String>map) { StringBuilder strbui = new StringBuilder(); strbui.append(a).append(",").append(b).append(","); for (String str : s) { strbui.append(str).append(","); } strbui.append(map.get("xieyu")); return strbui.toString(); }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值