decorators
此模块包含访问器类型脚本修饰器。装饰器允许我们在设计时定义和/或修改现有属性、方法和构造函数的行为。
方法概述
- aliasOf():在它修饰的属性与其成员之一的内部属性之间创建双向绑定的属性修饰器。
- cast():此方法修饰器用于定义将从类中强制转换属性的方法。
- cast():此属性修饰器用于定义属性的函数或类。
- declared():可用作类的函数。
- property():此方便修饰器用于定义Accessor属性。
- subclass():装饰器。
方法详情
- aliasOf(propertyName):在它修饰的属性与其成员之一的内部属性之间创建双向绑定的属性修饰器。参数
- propertyName :别名属性名称。
@aliasOf("viewModel.name")
name: string = "name";
@aliasOf("viewModel.someMethod")
someMethod: () => string;
- cast(propertyName):此方法修饰器用于定义将从类中强制转换属性的方法。参数
- propertyName:函数将强制转换的属性名称。
import Accessor = require("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) {
return Math.max(0, Math.min(255, value));
}
@cast("a")
protected castAlpha(value) {
return Math.max(0, Math.min(1, value));
}
}
- cast(functionOrClass):此属性修饰器用于定义属性的函数或类。参数
- functionOrClass :要强制转换属性的函数或类。
import Accessor = require("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):可用作类的函数。它扩展表达式并与修饰器结合使用,以创建与dojo.declare。有关更多信息,请参阅文档。参数
- baseClass:要扩展的类。
- ...mixinClasses:用于扩展基类的混合类。
@subclass("my.custom.class")
class MyCustomClass extends declared(Accessor) {
// ...
}
- property(propertyMetadata):此方便修饰器用于定义Accessor属性。任何在修饰器的定义的属性可以使用get和set。此外,您还可以监视人格属性更改。很多时候,此装饰器与@renderable配合使用。参数
@property()
title: string = "Awesome Title!"
- subclass(declaredClass):参数
- declaredClass :子类名称。
@subclass("my.custom.class")
class MyCustomClass extends Accessor {
// ...
}
版权声明:
作者:Gomo
链接:https://www.develophm.com/index.php/decorators/1192/
来源:开发之家
文章版权归作者所有,未经允许请勿转载。
THE END
二维码
共有 0 条评论