decorators
esri/core/accessorSupport/decoratorsThis 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
@subclassdecorator to create a class compatible to dojo.declare. Please refer to thesubclassdocumentation 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
getandset. 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 { // ... }