UNPKG

tdesign-react

Version:
10 lines (9 loc) 540 B
export interface ChangeHandler<T, P extends any[]> { (value: T, ...args: P): any; } type DefaultOptions<T extends string> = `default${Capitalize<T>}`; type ToString<T extends string | number | symbol> = T extends string ? T : `${Extract<T, number>}`; declare const useControlled: <P extends any[], R extends object, K extends keyof R>(props: R, valueKey: K, onChange: ChangeHandler<R[K], P>, defaultOptions?: { [key in DefaultOptions<ToString<K>>]: R[K]; } | object) => [R[K], ChangeHandler<R[K], P>]; export default useControlled;