require(["esri/core/accessorSupport/decorators"], (decorators) => { /* code goes here */ });
import * as decorators from "@arcgis/core/core/accessorSupport/decorators.js";
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 |
---|---|---|---|
A property decorator that creates a two-way binding between the property it decorates and an inner property of one of its members. | decorators | ||
This method decorator is used to define the method that will cast a property from a class. | decorators | ||
This property decorator is used to define the function or class for a property. | decorators | ||
This convenience decorator is used to define an Accessor property. | decorators | ||
This decorator is used to define an Accessor subclass. | decorators |
Method Details
-
aliasOf
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.
ParameterpropertyName StringThe aliased property name.
ReturnsType Description Function The property decorator. Examples// property example @aliasOf("viewModel.name") name: string = "name";
// method example @aliasOf("viewModel.someMethod") someMethod: () => string;
-
cast
cast(propertyName){Function}
-
This method decorator is used to define the method that will cast a property from a class.
ParameterpropertyName StringThe property name the function will cast.
ReturnsType Description Function The method descriptor. - See also
Exampleimport Accessor from "esri/core/Accessor"; import { subclass, property, cast } from "esri/core/accessorSupport/decorators"; @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
cast(functionOrClass){Function}
-
This property decorator is used to define the function or class for a property.
ParameterfunctionOrClass FunctionThe function or class to cast the property
ReturnsType Description Function The property descriptor. - See also
Exampleimport Accessor from "esri/core/Accessor"; import { subclass, property, cast } from "esri/core/accessorSupport/decorators"; 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; }
-
property
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.ParametersSpecificationpropertyMetadata ObjectoptionalAn object describing the property.
Specificationoptional 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.
ReturnsType Description Function The property descriptor. - See also
Example// typescript syntax to specify the property. @property() title: string = "Awesome Title!"
-
subclass
subclass(declaredClass){Function}
-
This decorator is used to define an Accessor subclass. Any subclass of Accessor must use the
@subclass
decorator.ParameterdeclaredClass StringoptionalThe subclass name.
ReturnsType 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 { // ... }