first
This commit is contained in:
33
node_modules/define-lazy-prop/index.d.ts
generated
vendored
Normal file
33
node_modules/define-lazy-prop/index.d.ts
generated
vendored
Normal file
@ -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;
|
Reference in New Issue
Block a user