Project: typescript
Task (moderate): Create a file at types/schema.ts that exports interface `FormSchema`:
  fields: dynamically create supported Setter types according to the form value type.

In types/setter.ts, create and export interfaces:
  1. ExpressionEvent with generic SetterValue and FormValue:
    - value: generic type SetterValue
    - formValue: generic type FormValue, FormValue's constraints align with FormSchema.

  2. Expression with generic SetterValue, FormValue and ExpressionValue:
    - type: 'expression'
    - value: value is a function type, parameter is ExpressionEvent,  return type is generic type ExpressionValue.
  3. SetterMaybeExpression: Expression or generic type ExpressionValue