@@ -28,7 +28,7 @@ createArray(3, 'x'); // ['x', 'x', 'x']
2828
2929``` ts 
3030function  createArray<T >(length :  number , value :  T ):  Array <T > {
31-    let  result =  [];
31+    let  result:   T []  =  [];
3232  for  (let  i =  0 ; i  <  length ; i ++ ) {
3333    result [i ] =  value ;
3434  }
@@ -44,7 +44,7 @@ createArray<string>(3, 'x'); // ['x', 'x', 'x']
4444
4545``` ts 
4646function  createArray<T >(length :  number , value :  T ):  Array <T > {
47-   let  result =  [];
47+   let  result:   T []  =  [];
4848  for  (let  i =  0 ; i  <  length ; i ++ ) {
4949    result [i ] =  value ;
5050  }
@@ -156,7 +156,7 @@ interface CreateArrayFunc {
156156
157157let  createArray:  CreateArrayFunc ;
158158createArray  =  function <T >(length :  number , value :  T ):  Array <T > {
159-   let  result =  [];
159+   let  result:   T []  =  [];
160160  for  (let  i =  0 ; i  <  length ; i ++ ) {
161161    result [i ] =  value ;
162162  }
@@ -175,7 +175,7 @@ interface CreateArrayFunc<T> {
175175
176176let  createArray:  CreateArrayFunc <any >;
177177createArray  =  function <T >(length :  number , value :  T ):  Array <T > {
178-   let  result =  [];
178+   let  result:   T []  =  [];
179179  for  (let  i =  0 ; i  <  length ; i ++ ) {
180180    result [i ] =  value ;
181181  }
@@ -202,9 +202,24 @@ myGenericNumber.zeroValue = 0;
202202myGenericNumber .add  =  function (x , y ) { return  x  +  y ; };
203203``` 
204204
205+ ## 泛型参数的默认类型  
206+ 
207+ 在 TypeScript 2.3 以后,我们可以为泛型中的类型参数指定默认类型。当使用泛型时没有在代码中直接指定类型参数,从实际值参数中也无法推测出时,这个默认类型就会起作用。
208+ 
209+ ``` ts 
210+ function  createArray<T  =  string >(length :  number , value :  T ):  Array <T > {
211+   let  result:  T [] =  [];
212+   for  (let  i =  0 ; i  <  length ; i ++ ) {
213+     result [i ] =  value ;
214+   }
215+   return  result ;
216+ }
217+ ``` 
218+ 
205219## 参考  
206220
207221-  [ Generics] ( http://www.typescriptlang.org/docs/handbook/generics.html ) ([ 中文版] ( https://zhongsp.gitbooks.io/typescript-handbook/content/doc/handbook/generics.html ) )
222+ -  [ Generic parameter defaults] ( https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-3.html#generic-parameter-defaults ) 
208223
209224--- 
210225
0 commit comments