proto-decorator
TypeScript icon, indicating that this package has built-in type declarations

3.0.5 • Public • Published

Proto Decorator

A decorator for setting a property on the class prototype (previously known as typescript-proto-decorator).

Coverage Status

NPM

Compatibility

  • Typescript - full
  • Spec-compliant decorator proposal - full
  • Babel (current proposal) - full
  • Babel (legacy) - full

API

/**
 * Sets a value on the class' prototype
 * @param value The value to set
 * @param options Options to set. Defaults to configurable, enumerable and writable.
 */
function Proto(value: any, options?: Pick<PropertyDescriptor, 'configurable' | 'enumerable' | 'writable'>): PropertyDecorator;

Usage

import {Proto} from 'proto-decorator';

class MyClass {
  
  // set MyClass.prototype.foo = 'bar'
  @Proto('bar')
  public foo: string;
  
  // set MyClass.prototype.count = 1; It will be non-enumerable, non-writable.
  @Proto(1, {writable: false, enumerable: false})
  public readonly count: number;
}

Shortcuts

  • You can use @Proto.immutable as a shortcut for {configurable: false, enumerable: true, writable: false}.
  • You can use @Proto.hidden as a shortcut for {configurable: true, enumerable: false, writable: true}.
  • You can use @Proto.immutableHidden as a shortcut for {configurable: false, enumerable: false, writable: false}.

The UMD global name is ProtoDecorator.

Package Sidebar

Install

npm i proto-decorator

Weekly Downloads

5

Version

3.0.5

License

MIT

Unpacked Size

34.4 kB

Total Files

14

Last publish

Collaborators

  • alorel