11///<reference path="Driver.ts"/>
22
33namespace Base {
4- export interface IList {
4+ export interface IList < T > {
55 isHead : boolean ;
6- next : IList ;
7- prev : IList ;
8- insertAfter ( entry : IList ) : IList ;
9- insertBefore ( entry : IList ) : IList ;
6+ next : IList < T > ;
7+ prev : IList < T > ;
8+ data : T ;
9+ insertAfter ( entry : IList < T > ) : IList < T > ;
10+ insertBefore ( entry : IList < T > ) : IList < T > ;
1011 item ( ) ;
1112 empty ( ) : boolean ;
1213 }
1314
14- export class List implements IList {
15- next : IList ;
16- prev : IList ;
17-
18- constructor ( public isHead : boolean , public data ) { }
15+ export class List < T > implements IList < T > {
16+ next : IList < T > ;
17+ prev : IList < T > ;
18+
19+ constructor ( public isHead : boolean , public data : T ) { }
1920
2021 item ( ) {
2122 return this . data ;
@@ -25,15 +26,15 @@ namespace Base {
2526 return this . next == this ;
2627 }
2728
28- insertAfter ( entry : IList ) : IList {
29+ insertAfter ( entry : IList < T > ) : IList < T > {
2930 entry . next = this . next ;
3031 entry . prev = this ;
3132 this . next = entry ;
3233 entry . next . prev = entry ;
3334 return ( entry ) ;
3435 }
3536
36- insertBefore ( entry : IList ) : IList {
37+ insertBefore ( entry : IList < T > ) : IList < T > {
3738 this . prev . next = entry ;
3839 entry . next = this ;
3940 entry . prev = this . prev ;
@@ -42,21 +43,21 @@ namespace Base {
4243 }
4344 }
4445
45- export function listMakeEntry ( data ) : IList {
46- var entry : List = new List ( false , data ) ;
46+ export function listMakeEntry < T > ( data : T ) : IList < T > {
47+ var entry : List < T > = new List < T > ( false , data ) ;
4748 entry . prev = entry ;
4849 entry . next = entry ;
4950 return entry ;
5051 }
5152
52- export function listMakeHead ( ) : IList {
53- var entry : List = new List ( true , null ) ;
53+ export function listMakeHead < T > ( ) : IList < T > {
54+ var entry : List < T > = new List ( true , null ) ;
5455 entry . prev = entry ;
5556 entry . next = entry ;
5657 return entry ;
5758 }
5859
59- export function listRemove ( entry : IList ) : IList {
60+ export function listRemove < T > ( entry : IList < T > ) : IList < T > {
6061 if ( entry == null ) {
6162 return null ;
6263 }
0 commit comments