|
@@ -0,0 +1,39 @@
|
|
|
+(function() {
|
|
|
+
|
|
|
+ function fn1<A>(name:A):A {
|
|
|
+ return name;
|
|
|
+ }
|
|
|
+ fn1('孙悟空');
|
|
|
+ fn1<number>(1);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ function fn2<T,W>(a:T,b:W):[T,W] {
|
|
|
+ return [a,b];
|
|
|
+ }
|
|
|
+ fn2('1',false);
|
|
|
+ fn2<boolean,string>(true,'hi')
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ interface happy {
|
|
|
+ aa:string
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ function fn3<T extends happy>(x:T):T {
|
|
|
+ return x;
|
|
|
+ }
|
|
|
+
|
|
|
+ fn3({aa:'66'})
|
|
|
+
|
|
|
+
|
|
|
+ class Hi<T extends happy> {
|
|
|
+ name:T;
|
|
|
+ constructor(name:T) {
|
|
|
+ this.name = name;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ let h = new Hi({aa:'66'})
|
|
|
+})()
|