rjsf-team / react-jsonschema-form

A React component for building Web forms from JSON Schema.
https://rjsf-team.github.io/react-jsonschema-form/
Apache License 2.0
14.39k stars 2.2k forks source link

Typing ErrorSchema claims subsequent fields 'are not assignable' #4338

Open justinwrobel opened 1 month ago

justinwrobel commented 1 month ago

Prerequisites

What theme are you using?

utils

Version

5.21.2

Current Behavior

Typing ErrorSchema claims subsequent fields 'are not assignable'. The following is the relevant code and the full error message

Relevant code:

const userFormErrors: ErrorSchema<{ username: string }>=...

Error message:

Type '{ __errors: string[]; }' is not assignable to type 'ErrorSchema<string>'.
  Type '{ __errors: string[]; }' is not assignable to type 'string'.

Full example is at https://codesandbox.io/p/sandbox/confident-framework-34wv6s

Expected Behavior

ErrorSchema should not throw errors when Typed

Steps To Reproduce

See full example at https://codesandbox.io/p/sandbox/confident-framework-34wv6s

The following error is visible in the "problems" pane

Type '{ __errors: string[]; }' is not assignable to type 'ErrorSchema<string>'.
  Type '{ __errors: string[]; }' is not assignable to type 'string'.

Environment

https://codesandbox.io/p/sandbox/confident-framework-34wv6s

Anything else?

No response

heath-freenome commented 1 month ago

@justinwrobel The error schema typing is pretty strange given it's recursive nature. If you use the ErrorSchemaBuilder to create your ErrorSchema instance then you can avoid these issues that can be caused by trying to hand-code one.