Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR implements support for
additionalProperties: TSchema
on Value and TypeCompiler API's to allow for additional properties of a known type. This functionality aligns TypeBox validators withnon-boolean
additional properties constraints which are outlined at http://json-schema.org/understanding-json-schema/reference/object.html#additional-propertiesThis PR also includes a new generic argument of
TAdditionalProperties
onTObject
. This generic argument is used to infer a intersection of the normalTObject
inference type with aRecord<string, TAdditionalProperties>
type. Intersection is only mapped when passing anon-boolean
additionalProperties value. TheTAdditionalProperties
argument itself is static and reflectable.Testing has been completed on TS 4.1.5 and should be fine; however the inference for
TAdditionalProperties
can be considered provisional as the output type produced results in a non-assignable type whose usage is somewhat limited. Future updates may default the inference tounknown
.