@@ -91,7 +91,7 @@ export interface DefaultOptionType extends BaseOptionType {
91
91
children ?: Omit < DefaultOptionType , 'children' > [ ] ;
92
92
}
93
93
94
- export interface SharedSelectProps < OptionType extends BaseOptionType = DefaultOptionType >
94
+ export interface SelectProps < ValueType = any , OptionType extends BaseOptionType = DefaultOptionType >
95
95
extends BaseSelectPropsWithoutPrivate {
96
96
prefixCls ?: string ;
97
97
id ?: string ;
@@ -131,47 +131,20 @@ export interface SharedSelectProps<OptionType extends BaseOptionType = DefaultOp
131
131
132
132
// >>> Icon
133
133
menuItemSelectedIcon ?: RenderNode ;
134
- }
135
134
136
- export interface SingleSelectProps <
137
- ValueType = any ,
138
- OptionType extends BaseOptionType = DefaultOptionType ,
139
- > extends SharedSelectProps < OptionType > {
140
- mode ?: 'combobox' ;
135
+ mode ?: 'combobox' | 'multiple' | 'tags' ;
141
136
labelInValue ?: boolean ;
142
137
value ?: ValueType | null ;
143
138
defaultValue ?: ValueType | null ;
144
- onChange ?: ( value : ValueType , option : OptionType ) => void ;
145
- }
146
-
147
- export interface MultipleSelectProps <
148
- ValueType = any [ ] ,
149
- OptionType extends BaseOptionType = DefaultOptionType ,
150
- > extends SharedSelectProps < OptionType > {
151
- mode : 'multiple' | 'tags' ;
152
- labelInValue ?: boolean ;
153
- value ?: ValueType [ ] | null ;
154
- defaultValue ?: ValueType [ ] | null ;
155
- onChange ?: ( value : ValueType [ ] , option : OptionType [ ] ) => void ;
139
+ onChange ?: ( value : ValueType , option : OptionType | OptionType [ ] ) => void ;
156
140
}
157
141
158
- export type SelectProps < ValueType = any , OptionType extends BaseOptionType = DefaultOptionType > =
159
- | SingleSelectProps < ValueType , OptionType >
160
- | MultipleSelectProps < ValueType , OptionType > ;
161
-
162
- export type InternalSelectProps <
163
- ValueType = any ,
164
- OptionType extends BaseOptionType = DefaultOptionType ,
165
- > = Omit < SelectProps < ValueType , OptionType > , 'onChange' > & {
166
- onChange ?: ( value : DraftValueType , option : OptionType | OptionType [ ] ) => void ;
167
- } ;
168
-
169
142
function isRawValue ( value : DraftValueType ) : value is RawValueType {
170
143
return ! value || typeof value !== 'object' ;
171
144
}
172
145
173
146
const Select = React . forwardRef (
174
- ( props : InternalSelectProps < any , DefaultOptionType > , ref : React . Ref < BaseSelectRef > ) => {
147
+ ( props : SelectProps < any , DefaultOptionType > , ref : React . Ref < BaseSelectRef > ) => {
175
148
const {
176
149
id,
177
150
mode,
0 commit comments