OptionalarrayIf the type is an array it can have an arrayType. This should only be defined if the current TypeObject is an array. This would be the un-arrayed type
OptionalgetUsed for a determining a sub type based on the value.
The value to determine the subtype for.
Optionaloriginal: P
The value being updated, when there is one. A partial update need not carry
enough information to identify its own subtype (e.g. { foreground: null } says nothing about
whether the fill is a pattern); implementations should fall back to the original's subtype so
the partial merges into it rather than replacing it.
Another TypedObject
OptionalmergeReturns a new T that is the result of merging the update into the original. If this is not defined then the default merging logic will be applied This is used for specialized updates of properties.
OptionalpropertiesDefine the properties that are available.
This map is exhaustive - Required makes every key of P mandatory here, so the compiler
refuses a type that forgets one. That completeness is what lets
TypedObject.resolveTypedUpdates treat an undeclared key in an update as junk and drop
it rather than shallow-copying it into the resolved (and then persisted) properties.
Use TypedObject.PassThrough for a key that needs no shorthand, merge or traversal - it declares the key as known and takes its value verbatim.
OptionalshorthandNormalizes an incoming update into this type's property shape.
The normalized properties, null to resolve to nothing, or undefined to decline -
undefined leaves the update exactly as it arrived, which is how a type opts out for the
inputs it has no opinion about. The three are distinct; see
TypedObject.resolveTypedUpdates.
TypedObject is a metadata entry that enabled traversing.
Remarks