decorators

AMD: require(["geoscene/core/accessorSupport/decorators"], (decorators) => { /* code goes here */ });
ESM: import * as decorators from "@geoscene/core/core/accessorSupport/decorators";
类: geoscene/core/accessorSupport/decorators
起始版本:GeoScene Maps SDK for JavaScript 4.2

此模块包含 Accessor TypeScript 装饰器。装饰器允许我们在设计时定义和/或修改现有属性、方法和构造函数的行为。

方法概述

名称 返回值类值 描述 对象
Function

属性装饰器,用于在它所装饰的属性与其成员之一的内部属性之间创建双向绑定。

更多详情
decorators
Function

此方法装饰器可用于定义将从类强制转换属性的方法。

更多详情
decorators
Function

此属性装饰器可用于定义属性的函数或类。

更多详情
decorators
Function

此便利装饰器用于定义 Accessor 属性。

更多详情
decorators
Functiondecorators

方法详细说明

aliasOf(propertyName){Function}

属性装饰器,用于在它所装饰的属性与其成员之一的内部属性之间创建双向绑定。

参数
propertyName String

别名属性名称。

返回
类型 描述
Function 属性装饰器。
示例
// property example
@aliasOf("viewModel.name")
name: string = "name";
// method example
@aliasOf("viewModel.someMethod")
someMethod: () => string;
cast(propertyName){Function}

此方法装饰器可用于定义将从类强制转换属性的方法。

参数
propertyName String

函数将强制转换的属性名称。

返回
类型 描述
Function 方法描述符。
另请参阅
示例
import Accessor from "geoscene/core/Accessor";
import { subclass, property, cast } from "geoscene/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}

此属性装饰器可用于定义属性的函数或类。

参数
functionOrClass Function

要强制转换属性的函数或类

返回
类型 描述
Function 属性描述符。
另请参阅
示例
import Accessor from "geoscene/core/Accessor";
import { subclass, property, cast } from "geoscene/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;
}
property(propertyMetadata){Function}

此便利装饰器用于定义 Accessor 属性。使用此装饰器定义的任何属性现在都可进行 getset。此外,您还可以监视任何属性更改

参数
规范
propertyMetadata Object
optional

描述属性的对象。

规范
dependsOn String[]
optional

依赖项的属性名称。

optional

用于自动转换属性的构造函数。

optional

用于自动转换属性的函数。替代定义 type。该函数使用用户设置的值调用,并应返回强制转换值。

readOnly Boolean
optional
默认值: false

指示属性是否为只读。

constructOnly Boolean
optional
默认值: false

指示是否可以在构造期间设置属性,但在其他情况下为只读。

aliasOf String
optional

属性装饰器,用于在它所装饰的属性与其成员之一的内部属性之间创建双向绑定。

value Object
optional

属性的默认值。

返回
类型 描述
Function 属性描述符。
另请参阅
示例
// typescript syntax to specify the property.
@property()
title: string = "Awesome Title!"
subclass(declaredClass){Function}
参数
declaredClass String
optional

子类名称。

返回
类型 描述
Function 类装饰器。
示例
// Typescript syntax which creates a subclass that extends the Accessor class.
@subclass("my.custom.class")
class MyCustomClass extends Accessor {
  // ...
}

您的浏览器不再受支持。请升级您的浏览器以获得最佳体验。请参阅浏览器弃用帖子以获取更多信息