File tree Expand file tree Collapse file tree 2 files changed +71
-1
lines changed Expand file tree Collapse file tree 2 files changed +71
-1
lines changed Original file line number Diff line number Diff line change @@ -22,3 +22,30 @@ form.addEventListener('submit', (e) => {
22
22
}
23
23
list . render ( doc , type . value , 'end' ) ;
24
24
} ) ;
25
+ // GENERICS
26
+ // const addUID = (obj: object) => {
27
+ // let uid = Math.floor(Math.random() * 100);
28
+ // return {...obj, uid};
29
+ // }
30
+ // const addUID = <T extends object>(obj: T) => {
31
+ // let uid = Math.floor(Math.random() * 100);
32
+ // return {...obj, uid};
33
+ // }
34
+ const addUID = ( obj ) => {
35
+ let uid = Math . floor ( Math . random ( ) * 100 ) ;
36
+ return Object . assign ( Object . assign ( { } , obj ) , { uid } ) ;
37
+ } ;
38
+ let docOne = addUID ( { name : 'yoshi' , age : 40 } ) ;
39
+ //let docTwo = addUID('shaun');
40
+ console . log ( docOne . name ) ;
41
+ const docThree = {
42
+ uid : 1 ,
43
+ resourceName : 'person' ,
44
+ data : { name : 'shaun' }
45
+ } ;
46
+ const docFour = {
47
+ uid : 1 ,
48
+ resourceName : 'shoppingList' ,
49
+ data : [ 'bread' , 'milk' ]
50
+ } ;
51
+ console . log ( docThree , docFour ) ;
Original file line number Diff line number Diff line change @@ -27,4 +27,47 @@ form.addEventListener('submit', (e: Event) => {
27
27
}
28
28
29
29
list . render ( doc , type . value , 'end' ) ;
30
- } ) ;
30
+ } ) ;
31
+
32
+ // GENERICS
33
+
34
+ // const addUID = (obj: object) => {
35
+ // let uid = Math.floor(Math.random() * 100);
36
+ // return {...obj, uid};
37
+ // }
38
+
39
+ // const addUID = <T extends object>(obj: T) => {
40
+ // let uid = Math.floor(Math.random() * 100);
41
+ // return {...obj, uid};
42
+ // }
43
+
44
+ const addUID = < T extends { name : string } > ( obj : T ) => {
45
+ let uid = Math . floor ( Math . random ( ) * 100 ) ;
46
+ return { ...obj , uid} ;
47
+ }
48
+
49
+ let docOne = addUID ( { name : 'yoshi' , age : 40 } ) ;
50
+ //let docTwo = addUID('shaun');
51
+
52
+ console . log ( docOne . name ) ;
53
+
54
+ // with interfaces
55
+ interface Resource < T > {
56
+ uid : number ;
57
+ resourceName : string ;
58
+ data : T ;
59
+ }
60
+
61
+ const docThree : Resource < object > = {
62
+ uid : 1 ,
63
+ resourceName : 'person' ,
64
+ data : { name : 'shaun' }
65
+ } ;
66
+
67
+ const docFour : Resource < string [ ] > = {
68
+ uid : 1 ,
69
+ resourceName : 'shoppingList' ,
70
+ data : [ 'bread' , 'milk' ]
71
+ } ;
72
+
73
+ console . log ( docThree , docFour ) ;
You can’t perform that action at this time.
0 commit comments