diff options
Diffstat (limited to 'sandbox/testAppNevena/Front/node_modules/define-lazy-prop/index.d.ts')
-rw-r--r-- | sandbox/testAppNevena/Front/node_modules/define-lazy-prop/index.d.ts | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/sandbox/testAppNevena/Front/node_modules/define-lazy-prop/index.d.ts b/sandbox/testAppNevena/Front/node_modules/define-lazy-prop/index.d.ts new file mode 100644 index 00000000..ba8998b8 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/define-lazy-prop/index.d.ts @@ -0,0 +1,33 @@ +/** +Define a [lazily evaluated](https://en.wikipedia.org/wiki/Lazy_evaluation) property on an object. + +@param object - Object to add property to. +@param propertyName - Name of the property to add. +@param fn - Called the first time `propertyName` is accessed. + +@example +``` +import defineLazyProp = require('define-lazy-prop'); + +const unicorn = { + // … +}; + +defineLazyProp(unicorn, 'rainbow', () => expensiveComputation()); + +app.on('user-action', () => { + doSomething(unicorn.rainbow); +}); +``` +*/ +declare function defineLazyProp< + ObjectType extends {[key: string]: unknown}, + PropertyNameType extends string, + PropertyValueType +>( + object: ObjectType, + propertyName: PropertyNameType, + fn: () => PropertyValueType +): ObjectType & {[K in PropertyNameType]: PropertyValueType}; + +export = defineLazyProp; |