@@ -80,6 +80,16 @@ export interface ShowSearchType {
8080 limit ?: number | false ;
8181}
8282
83+ export interface EmptyFilteredOptionsType {
84+ disabled : boolean ;
85+ [ key : string ] : any ;
86+ }
87+
88+ export interface FilteredOptionsType extends EmptyFilteredOptionsType {
89+ __IS_FILTERED_OPTION : boolean ;
90+ path : CascaderOptionType [ ] ;
91+ }
92+
8393// const ShowSearchType = PropTypes.shape({
8494// filter: PropTypes.func,
8595// render: PropTypes.func,
@@ -217,11 +227,13 @@ const Cascader = defineComponent({
217227 data ( ) {
218228 const { value, defaultValue, popupVisible, showSearch, options } = this . $props ;
219229 return {
220- sValue : value || defaultValue || [ ] ,
230+ sValue : ( value || defaultValue || [ ] ) as any [ ] ,
221231 inputValue : '' ,
222232 inputFocused : false ,
223- sPopupVisible : popupVisible ,
224- flattenOptions : showSearch ? flattenTree ( options , this . $props ) : undefined ,
233+ sPopupVisible : popupVisible as boolean ,
234+ flattenOptions : showSearch
235+ ? flattenTree ( options as CascaderOptionType [ ] , this . $props )
236+ : undefined ,
225237 } ;
226238 } ,
227239 watch : {
@@ -311,7 +323,7 @@ const Cascader = defineComponent({
311323
312324 handleInputClick ( e : MouseEvent & { nativeEvent ?: any } ) {
313325 const { inputFocused, sPopupVisible } = this ;
314- // Prevent `Trigger` behaviour .
326+ // Prevent `Trigger` behavior .
315327 if ( inputFocused || sPopupVisible ) {
316328 e . stopPropagation ( ) ;
317329 if ( e . nativeEvent && e . nativeEvent . stopImmediatePropagation ) {
@@ -346,8 +358,8 @@ const Cascader = defineComponent({
346358 const displayRender = getComponent ( this , 'displayRender' , { } , false ) || defaultDisplayRender ;
347359 const value = this . sValue ;
348360 const unwrappedValue = Array . isArray ( value [ 0 ] ) ? value [ 0 ] : value ;
349- const selectedOptions = arrayTreeFilter (
350- options ,
361+ const selectedOptions = arrayTreeFilter < CascaderOptionType > (
362+ options as CascaderOptionType [ ] ,
351363 ( o , level ) => o [ names . value ] === unwrappedValue [ level ] ,
352364 { childrenKeyName : names . children } ,
353365 ) ;
@@ -366,7 +378,10 @@ const Cascader = defineComponent({
366378 }
367379 } ,
368380
369- generateFilteredOptions ( prefixCls : string | undefined , renderEmpty : RenderEmptyHandler ) {
381+ generateFilteredOptions (
382+ prefixCls : string | undefined ,
383+ renderEmpty : RenderEmptyHandler ,
384+ ) : EmptyFilteredOptionsType [ ] | FilteredOptionsType [ ] {
370385 const { showSearch, notFoundContent } = this ;
371386 const names : FilledFieldNamesType = getFilledFieldNames ( this . $props ) ;
372387 const {
0 commit comments