Project: typescript
Task (easy): 1. Export interface `BaseSetter`, has `value` and `onChange`, onChange is a function type, parameter is the value of the corresponding type and may be undefined,  return type is void.
2. BaseSetter all types are required.
3. Export type OptionalBaseSetter, has the same type of BaseSetter, but all types are optional.
4. InputSetter、NumberSetter、CheckboxSetter extends OptionalBaseSetter.