Skip to main content

FieldSchema Class

All policy for a specific field, including functionality that does not have to be kept consistent across versions or deterministic.

This can include policy for how to use this schema for "view" purposes, and well as how to expose editing APIs. Use SchemaFactory to create the FieldSchema instances, for example optional(t, props).

Signature

/** @sealed */
export declare class FieldSchema<out Kind extends FieldKind = FieldKind, out Types extends ImplicitAllowedTypes = ImplicitAllowedTypes, out TCustomMetadata = unknown>

Type Parameters

Parameter Constraint Default Description
Kind FieldKind FieldKind
Types ImplicitAllowedTypes ImplicitAllowedTypes
TCustomMetadata unknown Custom metadata properties to associate with the field. See custom.

Properties

Property Modifiers Type Description
_typeCheck MakeNominal This class is used with instanceof, and therefore should have nominal typing. This field enforces that.
allowedTypes readonly Types What types of tree nodes are allowed in this field.
allowedTypeSet readonly ReadonlySet<TreeNodeSchema> What types of tree nodes are allowed in this field.
kind readonly Kind The kind of this field. Determines the multiplicity, viewing and editing APIs as well as the merge resolution policy.
metadata readonly FieldSchemaMetadata<TCustomMetadata> | undefined Optional metadata to associate with the field.
props optional, readonly FieldProps<TCustomMetadata> | undefined Optional properties associated with the field.
requiresValue readonly boolean True if and only if, when constructing a node with this field, a value must be provided for it.

Property Details

_typeCheck

This class is used with instanceof, and therefore should have nominal typing. This field enforces that.

Signature

protected _typeCheck: MakeNominal;

Type: MakeNominal

allowedTypes

What types of tree nodes are allowed in this field.

Signature

readonly allowedTypes: Types;

Type: Types

allowedTypeSet

What types of tree nodes are allowed in this field.

Signature

get allowedTypeSet(): ReadonlySet<TreeNodeSchema>;

Type: ReadonlySet<TreeNodeSchema>

Remarks

Counterpart to allowedTypes, with any lazy definitions evaluated.

kind

The kind of this field. Determines the multiplicity, viewing and editing APIs as well as the merge resolution policy.

Signature

readonly kind: Kind;

Type: Kind

metadata

Optional metadata to associate with the field.

Signature

get metadata(): FieldSchemaMetadata<TCustomMetadata> | undefined;

Type: FieldSchemaMetadata<TCustomMetadata> | undefined

Remarks

Note: this metadata is not persisted in the document.

props

Optional properties associated with the field.

Signature

readonly props?: FieldProps<TCustomMetadata> | undefined;

Type: FieldProps<TCustomMetadata> | undefined

requiresValue

True if and only if, when constructing a node with this field, a value must be provided for it.

Signature

readonly requiresValue: boolean;

Type: boolean