1
1
import type { BuildInPlacements } from '@rc-component/trigger/lib/interface' ;
2
- import type { BaseSelectProps , BaseSelectPropsWithoutPrivate , BaseSelectRef } from '@rc-component/select' ;
2
+ import type {
3
+ BaseSelectProps ,
4
+ BaseSelectPropsWithoutPrivate ,
5
+ BaseSelectRef ,
6
+ } from '@rc-component/select' ;
3
7
import { BaseSelect } from '@rc-component/select' ;
4
8
import type { DisplayValueType , Placement } from '@rc-component/select/lib/BaseSelect' ;
5
9
import useId from '@rc-component/select/lib/hooks/useId' ;
@@ -143,6 +147,11 @@ export type GetValueType<
143
147
? ValueType < Required < OptionType > , ValueField > [ ]
144
148
: ValueType < Required < OptionType > , ValueField > [ ] [ ] ;
145
149
150
+ export type GetOptionType <
151
+ OptionType extends DefaultOptionType = DefaultOptionType ,
152
+ Multiple extends boolean | React . ReactNode = false ,
153
+ > = false extends Multiple ? OptionType [ ] : OptionType [ ] [ ] ;
154
+
146
155
export interface CascaderProps <
147
156
OptionType extends DefaultOptionType = DefaultOptionType ,
148
157
ValueField extends keyof OptionType = keyof OptionType ,
@@ -153,7 +162,7 @@ export interface CascaderProps<
153
162
defaultValue ?: GetValueType < OptionType , ValueField , Multiple > ;
154
163
onChange ?: (
155
164
value : GetValueType < OptionType , ValueField , Multiple > ,
156
- selectOptions : OptionType [ ] ,
165
+ selectOptions : GetOptionType < OptionType , Multiple > ,
157
166
) => void ;
158
167
}
159
168
@@ -368,7 +377,6 @@ const Cascader = React.forwardRef<CascaderRef, InternalCascaderProps>((props, re
368
377
// ============================ Open ============================
369
378
const mergedOpen = open !== undefined ? open : popupVisible ;
370
379
371
-
372
380
const mergedPlacement = placement || popupPlacement ;
373
381
374
382
const onInternalPopupVisibleChange = ( nextVisible : boolean ) => {
0 commit comments