mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-01-30 13:37:35 +00:00
memoizee: Clean up types
This commit is contained in:
parent
84e67c4187
commit
87fb535940
60
memoizee/index.d.ts
vendored
60
memoizee/index.d.ts
vendored
@ -3,47 +3,27 @@
|
||||
// Definitions by: Juan Picado <https://github.com/juanpicado>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
|
||||
/**
|
||||
* Resolver options
|
||||
* @interface RevolversArray
|
||||
*/
|
||||
interface RevolversArray {
|
||||
[index: number]: {};
|
||||
declare namespace memoizee {
|
||||
interface Options {
|
||||
length?: number;
|
||||
maxAge?: number;
|
||||
max?: number;
|
||||
preFetch?: number | true;
|
||||
promise?: boolean;
|
||||
dispose?: (value: any) => void;
|
||||
async?: boolean;
|
||||
primitive?: boolean;
|
||||
normalizer?: (value: any) => void;
|
||||
resolvers?: Array<(arg: any) => any>;
|
||||
}
|
||||
|
||||
interface Memoized<F> {
|
||||
delete: F;
|
||||
clear: F & (() => void);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* List of options
|
||||
* @interface IMemoizeeOptions
|
||||
*/
|
||||
interface IMemoizeeOptions {
|
||||
length?: number;
|
||||
maxAge?: number;
|
||||
max?: number;
|
||||
preFetch?: number;
|
||||
promise?: boolean;
|
||||
dispose?: (value: any) => void;
|
||||
async?: boolean;
|
||||
primitive?: boolean;
|
||||
normalizer?: (value: any ) => void;
|
||||
resolvers?: RevolversArray;
|
||||
}
|
||||
|
||||
/**
|
||||
* Main interface functions
|
||||
* @interface IMemoizee
|
||||
* @extends {Function}
|
||||
*/
|
||||
interface IMemoizee extends Function {
|
||||
delete: (...params: any[]) => void;
|
||||
clear: (...params: any[]) => void;
|
||||
}
|
||||
|
||||
/**
|
||||
* Memoize function
|
||||
* @param {*} f
|
||||
* @param {IMemoizeeOptions} [options]
|
||||
* @returns {IMemoizee}
|
||||
*/
|
||||
declare function memoizee(f: (...params: any[]) => void, options?: IMemoizeeOptions): IMemoizee;
|
||||
// tslint:disable:forbidden-types
|
||||
declare function memoizee<F extends Function>(f: F, options?: memoizee.Options): F & memoizee.Memoized<F>;
|
||||
|
||||
export = memoizee;
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import memoize = require('memoizee');
|
||||
|
||||
var fn = function (one:any, two:any, three:any) { /* ... */ };
|
||||
var fn = function (one: string, two?: number, three?: any) { /* ... */ };
|
||||
|
||||
let memoized = memoize(fn);
|
||||
memoized('foo', 3, 'bar');
|
||||
@ -23,7 +23,7 @@ var foo3 = memoized('foo', 3);
|
||||
var bar7 = memoized('bar', 7);
|
||||
memoized.clear('foo', 3); // Dispose called with foo3 value
|
||||
memoized.clear('bar', 7); // Dispose called with bar7 value
|
||||
memoized.delete('foo', true);
|
||||
memoized.delete('foo', 0);
|
||||
var mFn = memoize(function (hash:any) {
|
||||
// body of memoized function
|
||||
}, { normalizer: function (args:any) {
|
||||
@ -34,17 +34,18 @@ var mFn = memoize(function (hash:any) {
|
||||
mFn({ foo: 'bar' });
|
||||
|
||||
memoized = memoize(fn, { length: 2, resolvers: [String, Boolean] });
|
||||
memoized(12, [1,2,3].length);
|
||||
memoized("12", true);
|
||||
memoized({ toString: function () { return "12"; } }, {});
|
||||
memoized(String(12), [1,2,3].length);
|
||||
memoized("12", Number(true));
|
||||
memoized(String({ toString: function () { return "12"; } }), Number({}));
|
||||
|
||||
var afn = function (a:number, b:number) {
|
||||
return new Promise(function (res) { res(a + b); });
|
||||
};
|
||||
memoized = memoize(afn, { promise: true });
|
||||
|
||||
memoized(3, 7);
|
||||
memoized(3, 7);
|
||||
{
|
||||
var afn = function (a:number, b:number) {
|
||||
return new Promise(function (res) { res(a + b); });
|
||||
};
|
||||
let memoized = memoize(afn, { promise: true });
|
||||
memoized(3, 7);
|
||||
memoized(3, 7);
|
||||
}
|
||||
|
||||
memoized = memoize(fn, { maxAge: 1000, preFetch: 0.6 });
|
||||
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
"module": "commonjs",
|
||||
"target": "es6",
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
|
||||
Loading…
Reference in New Issue
Block a user