Returns the number of members contained in this Value
, if this Value
is a [[Record]]; otherwise returns 0
if this Value
is not a Record
.
Returns the key
string of the first member of this Value
, if this
Value
is a [[Record]], and its first member is an [[Attr]]; otherwise
returns undefined
if this Value
is not a Record
, or if this Value
is a Record
whose first member is not an Attr
.
Used to concisely get the name of the discriminating attribute of a
structure. The tag
can be used to discern the nominal type of a
polymorphic structure, similar to an XML element tag.
Returns the [[Value.flattened flattened]] members of this Value
after
all attributes have been removed, if this Value
is a [[Record]];
otherwise returns this
if this Value
is not a Record
.
Used to concisely get the scalar value of an attributed structure. An
attributed structure is a Record
with one or more attributes that modify
one or more other members.
Returns the heterogeneous sort order of this Item
. Used to impose a
total order on the set of all items. When comparing two items of
different types, the items order according to their typeOrder
.
Returns the sole member of this Value
, if this Value
is a [[Record]]
with exactly one member, and its member is a Value
; returns [[Extant]]
if this Value
is an empty Record
; otherwise returns this
if this
Value
is a Record
with more than one member, or if this Value
is a
not a Record
.
Used to convert a unary Record
into its member Value
. Facilitates
writing code that treats a unary Record
equivalently to a bare Value
.
Returns the member of this Value
at the given index
, if this Value
is a [[Record]], and the index
is greater than or equal to zero, and
less than the [[Record.length length]] of the Record
; otherwise returns
[[Absent]] if this Value
is not a Record
, or if this Value
is a
Record
, but the index
is out of bounds.
Returns true
if this Value
is a [[Record]] that has a [[Field]] member
with a key that is equal to the given key
; otherwise returns false
if
this Value
is not a Record
, or if this Value
is a Record
, but has
no Field
member with a key equal to the given key
.
Returns the value of the first member of this Value
, if this Value
is
a Record
, and its first member is an [[Attr]] whose key
string is
equal to tag
; otherwise returns [[Absent]] if this Value
is not a
Record
, or if this Value
is a Record
whose first member is not an
Attr
, or if this Value
is a Record
whose first member is an Attr
whose key
does not equal the tag
.
Used to conditionally get the value of the head Attr
of a structure, if
and only if the key string of the head Attr
is equal to the tag
. Can
be used to check if a structure might conform to a nominal type named
tag
, while simultaneously getting the value of the tag
attribute.
Returns the [[Value.unflattened unflattened]] [[Value.header header]] of
this Value
, if this Value
is a [[Record]], and its first member is an
[[Attr]] whose key
string is equal to tag
; otherwise returns
undefined
.
The headers
of the tag
attribute of a structure are like the
attributes of an XML element tag; through unlike an XML element, tag
attribute headers are not limited to string keys and values.
Optional
likeConverts this Value
into a number
value, if possible; otherwise returns
undefined
if this Value
can't be converted into a number
value.
Converts this Value
into a number
value, if possible; otherwise returns
orElse
if this Value
can't be converted into a number
value.
Converts this Value
into a string
value, if possible; otherwise returns
undefined
if this Value
can't be converted into a string
value.
Converts this Value
into a string
value, if possible; otherwise returns
orElse
if this Value
can't be converted into a string
value.
Static
absentStatic
builderStatic
emptyStatic
extantStatic
fromStatic
globalGenerated using TypeDoc
Always returns [[Absent]] because a
Value
can't be aField
, so it can't have a key component.