decorators
esri/core/accessorSupport/decorators
This module contains Accessor TypeScript decorators. Decorators allow us to define and/or modify behavior of existing properties, methods, and constructors at design time.
Method Overview
Name | Return Type | Summary | Object | |
---|---|---|---|---|
Function | A property decorator that creates a two-way binding between the property it decorates and an inner property of one of its members. more details | more details | decorators | |
Function | This method decorator is used to define the method that will cast a property from a class. more details | more details | decorators | |
Function | This property decorator is used to define the function or class for a property. more details | more details | decorators | |
* | A function that can be used as a class. more details | more details | decorators | |
Function | This convenience decorator is used to define an Accessor property. more details | more details | decorators | |
Function | decorators |
Method Details
- aliasOf(propertyName){Function}
A property decorator that creates a two-way binding between the property it decorates and an inner property of one of its members.
Parameter:propertyName StringThe aliased property name.
Returns:Type Description Function The property decorator. Examples:// property example @aliasOf("viewModel.name") name: string = "name";
// method example @aliasOf("viewModel.someMethod") someMethod: () => string;
- cast(propertyName){Function}
This method decorator is used to define the method that will cast a property from a class.
Parameter:propertyName StringThe property name the function will cast.
Returns:Type Description Function The method descriptor. - See also:
Example:import Accessor from "esri/core/Accessor"; import { subclass, property, cast } from "esri/core/tsSupport/declare"; @subclass() class Color extends Accessor { @property() r: number = 0; @property() g: number = 0; @property() b: number = 0; @property() a: number = 1; @cast("r") @cast("g") @cast("b") protected castComponent(value) { // cast method that clamp the value that // will be set on r, g or b between 0 and 255 return Math.max(0, Math.min(255, value)); } @cast("a") protected castAlpha(value) { // cast method that clamp the value that // will be set on a between 0 and 255 return Math.max(0, Math.min(1, value)); } }
- cast(functionOrClass){Function}
This property decorator is used to define the function or class for a property.
Parameter:functionOrClass FunctionThe function or class to cast the property
Returns:Type Description Function The property descriptor. - See also:
Example:import Accessor from "esri/core/Accessor"; import { subclass, property, cast } from "esri/core/tsSupport/declare"; function clampRGB(component: number) { return Math.min(Math.max(component, 0), 255); } function clampAlpha(alpha: number) { return Math.min(Math.max(alpha, 0), 1); } @subclass() class Color extends Accessor { @property() @cast(clampRGB) r: number = 0; @property() @cast(clampRGB) g: number = 0; @property() @cast(clampRGB) b: number = 0; @property() @cast(clampRGB) a: number = 1; }
- declared(baseClass, mixinClasses){*}Deprecated since version 4.16.
declared()
is not needed to extend Accessor anymore. See Implementing Accessor for updated information. A function that can be used as a class. It extends expression and is used in conjunction with the
@subclass
decorator to create a class compatible to dojo.declare. Please refer to thesubclass
documentation for further information.Parameters:baseClassThe class to extend.
mixinClasses ObjectrepeatableThe mixin classes used to extend the base class.
Returns:Type Description * The first baseClass. Example:// typescript syntax which creates a subclass that extends the Accessor class. @subclass("my.custom.class") class MyCustomClass extends declared(Accessor) { // ... }
- property(propertyMetadata){Function}
This convenience decorator is used to define an Accessor property. Any property defined with this decorator can now be
get
andset
. In addition, you can watch for any property changes. Many times this decorator is used in conjunction with the @renderable decorator.Parameters:Specification:propertyMetadata ObjectoptionalAn object describing the property.
Specification:optional Property names of dependencies.
type FunctionoptionalThe constructor used to autocast the property.
cast FunctionoptionalThe function to use to autocast the property. Alternative to define the
type
. The function is called with the value set by the user and should return the cast value.readOnly BooleanoptionalDefault Value: falseIndicates whether the property is read-only.
constructOnly BooleanoptionalDefault Value: falseIndicates whether the property can be set during construction but is otherwise read-only.
aliasOf StringoptionalThe property decorator that creates a two-way binding between the property it decorates and an inner property of one of its members.
value ObjectoptionalThe default value for the property.
Returns:Type Description Function The property descriptor. - See also:
Example:// typescript syntax to specify the property. @property() title: string = "Awesome Title!"
- subclass(declaredClass){Function}
- Parameter:declaredClass Stringoptional
The subclass name.
Returns:Type Description Function The class decorator. Example:// Typescript syntax which creates a subclass that extends the Accessor class. @subclass("my.custom.class") class MyCustomClass extends Accessor { // ... }