Open
Description
If an object is run through the decoder at runtime, there should be a way to configure the decoder to throw an error if the decoded object has extra properties not defined on the original decoder.
For example, given the following decoder:
interface MyType {
myProperty?: string;
}
const MyTypeDecoder: Decoder<MyType> = object({
myProperty: optional(string());
});
There should be an additional combinator to make the decoder throw an error given the following input:
const myTypeRuntimeValue: MyType = {
myProperty: "someValue",
myOtherProperty: "This one isn't defined on the interface"
};
// I want this to throw an error because myTypeRuntimeValue has
// an additional property not defined in the interface
const decoded = MyTypeDecoder.runWithException(myTypeRuntimeValue);
The combinator could be something like exact(value)
, e.g.
interface MyType {
myProperty?: string;
}
const MyTypeDecoder: Decoder<MyType> = exact(object({
myProperty: optional(string());
}));
Metadata
Metadata
Assignees
Labels
No labels