Skip to content
import Field from "@arcgis/core/layers/support/Field.js";
Inheritance:
FieldAccessor
Since
ArcGIS Maps SDK for JavaScript 4.0

Information about each field in a layer. Field objects must be constructed when creating a FeatureLayer from client-side graphics. This class allows you to define the schema of each field in the FeatureLayer. Note that you do not need to add fields to the constructor of a FeatureLayer loaded from a service since they are already defined by the service. See the sample below for more information about using this module.

See also
Example
// Each object in this array is autocast as
// an instance of esri/layers/support/Field
let fields = [
{
name: "ObjectID",
alias: "ObjectID",
type: "oid"
}, {
name: "title",
alias: "title",
type: "string"
}, {
name: "type",
alias: "type",
type: "string"
}, {
name: "mag",
alias: "Magnitude",
type: "double"
}];
// add the array of fields to a feature layer
// created from client-side graphics
featureLayer.set({
fields: fields,
objectIdField: "ObjectID"
});

Constructors

Constructor

Constructor
Parameters
ParameterTypeDescriptionRequired
properties
See the properties table for a list of all the properties that may be passed into the constructor.

Properties

Any properties can be set, retrieved or listened to. See the Watch for changes topic.

alias

Property
Type
string | null | undefined

The alias of the field.

declaredClass

readonlyinherited Property
Type
string
Inherited from: Accessor
Since
ArcGIS Maps SDK for JavaScript 4.7

The name of the class. The declared class name is formatted as esri.folder.className.

defaultValue

Property
Type
string | number | null | undefined
Since
ArcGIS Maps SDK for JavaScript 4.9

The default value set for the field.

description

Property
Type
string | null | undefined
Since
ArcGIS Maps SDK for JavaScript 4.12

Contains information describing the purpose of each field.

See also

domain

autocast Property
Type
DomainUnion | null | undefined

The domain associated with the field. Domains are used to constrain the values allowed in a field. There are two types of domains: RangeDomain and CodedValueDomain.

Example
// print out the coded domain values when the layer is loaded
const layerView = await view.whenLayerView(featureLayer)
await reactiveUtils.whenOnce(() => !layerView.updating);
featureLayer.fields.forEach((field) => {
if (!field.domain) {
return;
}
let domain = field.domain
console.log(field.name, domain.type, domain.name);
if (domain.type === "coded-value"){
domain.codedValues.forEach((codeValue) => {
console.log("name:", codeValue.name, "code:", codeValue.code);
});
}
});

editable

Property
Type
boolean

Indicates whether the field is editable.

Default value
true

length

Property
Type
number | null | undefined

The field length.

name

Property
Type
string

The name of the field.

nullable

Property
Type
boolean

Indicates if the field can accept null values. Requires ArcGIS Server version 10.1 or greater.

Default value
true

type

Property
Type
FieldType

The data type of the field.

Notes

Support for big-integer, date-only, time-only and timestamp-offset fields was added in beta for FeatureLayer and MapImageLayer at version 4.28. The big-integer field type is in beta and may not be fully supported in the JavaScript SDK. The JavaScript SDK only supports safe integers that fall between -9007199254740991 (minimum) and 9007199254740991 (maximum). Numbers that fall outside of this range will be incorrect due to rounding, resulting in graphical or performance issues. For example, a calculation using Arcade expressions that results in a value exceeding these safe integers may be incorrect since rounding can occur. Web applications can only edit whole numbers between -9007199254740991 and 9007199254740991.

See also

valueType

Property
Type
FieldValueType | null | undefined
Since
ArcGIS Maps SDK for JavaScript 4.12

The types of values that can be assigned to a field. See the table below for a list of possible values.

ModeDescription
binaryOnly one of two values are possible for each feature. Some examples include the following: On or off, Yes or no, True or false, or Inhabited or vacant.
coordinateThese fields store a geographic coordinate value such as x, y, z, latitude, or longitude.
count-or-amountIntegers (no decimal) that represent how many or how much there is of a specific attribute.
currencyNumeric values that represent a monetary value.
date-and-timeValues in this field store explicit dates and times or date references such as days of the week, months, or years.
descriptionText that provides a longer description of the feature, more than just a name or title.
email-addressText that represents an email address.
location-or-place-nameValues in this field represent a geographic location. Examples of values in such a field include a street address, city name, region, building name (such as A.K. Smiley Public Library), attraction name (such as Alameda County Fairgrounds or Cairngorms National Park), postal code, or country.
measurementA number that reflects a characteristic that you can precisely measure.
name-or-titleText that represents a name, title, label, or keyword for each feature.
noneNo specified type.
ordered-or-rankedThe values in this field represent a feature's status in an ordered or ranked list. For example, a feature could be one of the following: Small, medium, large, First, second, third, fourth, or Informational, warning, error, failure.
percentage-or-ratioNumber values in this field reflect the relationship between different quantities.
phone-numberText that represents a phone number.
type-or-categoryTypes or categories that group features based on common characteristics.
unique-identifierThe values in this field are used to positively distinguish one feature or entity from another.
See also

Methods

MethodSignatureClass
fromJSON
inherited static
fromJSON(json: any): any
toJSON
inherited
toJSON(): any

fromJSON

inheritedstatic Method
Signature
fromJSON (json: any): any
Inherited from: JSONSupportMixin

Creates a new instance of this class and initializes it with values from a JSON object generated from an ArcGIS product. The object passed into the input json parameter often comes from a response to a query operation in the REST API or a toJSON() method from another ArcGIS product. See the Using fromJSON() topic in the Guide for details and examples of when and how to use this function.

Parameters
ParameterTypeDescriptionRequired
json
any

A JSON representation of the instance in the ArcGIS format. See the ArcGIS REST API documentation for examples of the structure of various input JSON objects.

Returns
any

Returns a new instance of this class.

toJSON

inherited Method
Signature
toJSON (): any
Inherited from: JSONSupportMixin

Converts an instance of this class to its ArcGIS portal JSON representation. See the Using fromJSON() guide topic for more information.

Returns
any

The ArcGIS portal JSON representation of an instance of this class.