11import memoize = require( "memoizee" ) ;
22
3- const fn = ( one : string , two ?: number , three ?: any ) => { /* ... */ } ;
3+ const fn = ( one : string , two ?: number , three ?: any ) => {
4+ return "test" ;
5+ } ;
46
57let memoized = memoize ( fn ) ;
68memoized ( "foo" , 3 , "bar" ) ;
@@ -19,11 +21,30 @@ memoized = memoize(fn, { primitive: true });
1921memoized ( "/path/one" ) ;
2022memoized ( "/path/one" ) ;
2123memoized = memoize ( fn , { dispose ( value : number ) { /*…*/ } } ) ;
22- const foo3 = memoized ( "foo" , 3 ) ;
23- const bar7 = memoized ( "bar" , 7 ) ;
24- memoized . clear ( "foo" , 3 ) ; // Dispose called with foo3 value
25- memoized . clear ( "bar" , 7 ) ; // Dispose called with bar7 value
26- memoized . delete ( "foo" , 0 ) ;
24+ const foo3 : string = memoized ( "foo" , 3 ) ;
25+ const bar7 : string = memoized ( "bar" , 7 ) ;
26+ memoized . delete ( "foo" , 3 ) ; // Dispose called with foo3 value
27+ memoized . delete ( "bar" , 7 ) ; // Dispose called with bar7 value
28+ memoized . clear ( ) ;
29+
30+ function testIncorrectParameterType ( ) : string {
31+ // @ts -expect-error Expect TypeScript to error when passing parameters of wrong types.
32+ return memoized ( 3 , "foo" ) ;
33+ }
34+ function testIncorrectDeleteParameterType ( ) : void {
35+ // @ts -expect-error Expect TypeScript to error when passing parameters of wrong types.
36+ return memoized . delete ( 3 , "foo" ) ;
37+ }
38+ function testIncorrectClearParameterType ( ) : void {
39+ // @ts -expect-error Expect TypeScript since clear() does not take any parameters.
40+ return memoized . clear ( "foo" , 3 ) ;
41+ }
42+ function testDeleteReturnType ( a : string , b : number ) : void {
43+ return memoized . delete ( a , b ) ;
44+ }
45+ function testClearReturnType ( ) : void {
46+ return memoized . clear ( ) ;
47+ }
2748const mFn = memoize ( ( hash : any ) => {
2849 // body of memoized function
2950} , {
@@ -49,13 +70,20 @@ memoized(
4970
5071{
5172 const afn = ( a : number , b : number ) => {
52- return new Promise ( res => {
73+ return new Promise < number > ( res => {
5374 res ( a + b ) ;
5475 } ) ;
5576 } ;
5677 let memoized = memoize ( afn , { promise : true } ) ;
57- memoized ( 3 , 7 ) ;
58- memoized ( 3 , 7 ) ;
78+ const foo : Promise < number > = memoized ( 3 , 7 ) ;
79+ const bar : Promise < number > = memoized ( 3 , 7 ) ;
80+
81+ function testDeleteReturnType ( a : number , b : number ) : void {
82+ return memoized . delete ( a , b ) ;
83+ }
84+ function testClearReturnType ( ) : void {
85+ return memoized . clear ( ) ;
86+ }
5987
6088 memoized = memoize ( afn , { promise : "then" } ) ;
6189 memoized ( 2 , 7 ) ;
0 commit comments