From 15867caba70bf393c5f985c4c382fdbf191711f8 Mon Sep 17 00:00:00 2001 From: Kotaro Sugawara Date: Fri, 25 Sep 2020 16:54:21 +0900 Subject: [PATCH] enhance Controller props type --- src/types.ts | 21 ++++++++++++++------- src/useTypedController.tsx | 2 +- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/types.ts b/src/types.ts index cb5f680..ac9031d 100644 --- a/src/types.ts +++ b/src/types.ts @@ -136,17 +136,24 @@ export type ControllerProps< TFieldName extends DeepPath, TAs extends 'input' | 'select' | 'textarea' > = Assign< - { + ( + | { + as: TAs; + render?: undefined; + } + | { + as?: undefined; + render: (props: { + onChange: (...event: any[]) => void; + onBlur: () => void; + value: DeepPathValue; + }) => React.ReactElement; + } + ) & { name: TFieldName; - as?: TAs; rules?: ValidationRules>; onFocus?: () => void; defaultValue?: DeepPathValue; - render?: (props: { - onChange: (...event: any[]) => void; - onBlur: () => void; - value: DeepPathValue; - }) => React.ReactElement; }, JSX.IntrinsicElements[TAs] >; diff --git a/src/useTypedController.tsx b/src/useTypedController.tsx index 4de3f53..e9f2b81 100644 --- a/src/useTypedController.tsx +++ b/src/useTypedController.tsx @@ -31,7 +31,7 @@ export const useTypedController = < ); },