Files
dewedev/node_modules/define-lazy-prop/index.d.ts
dwindown 7f2dd5260f Initial commit: Developer Tools MVP with visual editor
- Complete React app with 7 developer tools
- JSON Tool with visual structured editor
- Serialize Tool with visual structured editor
- URL, Base64, CSV/JSON, Beautifier, Diff tools
- Responsive navigation with dropdown menu
- Dark/light mode toggle
- Mobile-responsive design with sticky header
- All tools working with copy/paste functionality
2025-08-02 09:31:26 +07:00

34 lines
802 B
TypeScript

/**
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;