Show generated TS interface
```ts
export interface QSliderSlots {
/**
* What should the menu display after filtering options and none are left to be displayed; Suggestion:
* @param scope
*/
"marker-label": (scope: {
/**
* Config for current marker label
*/
marker: SliderMarkerLabelConfig;
/**
* Array of marker label configs
*/
markerList: SliderMarkerLabelArrayConfig[];
/**
* Object with key-value where key is the model and the value is the marker label config
*/
markerMap: SliderMarkerLabelObjectConfig;
/**
* Required CSS classes to be applied to the marker element
*/
classes: string;
/**
* Get CSS style Object to apply to a marker element at respective model value; For perf reasons, use only if requested model value is not already part of markerMap
* @param value The marker label equivalent model value
* @returns CSS style Object to apply to a marker element at respective model value
*/
getStyle: (value: number) => any;
}) => VNode[];
/**
* What should the menu display after filtering options and none are left to be displayed; Suggestion:
* @param scope
*/
"marker-label-group": (scope: {
/**
* Array of marker label configs
*/
markerList: SliderMarkerLabelArrayConfig[];
/**
* Object with key-value where key is the model and the value is the marker label config
*/
markerMap: SliderMarkerLabelObjectConfig;
/**
* Required CSS classes to be applied to the marker element
*/
classes: string;
/**
* Get CSS style Object to apply to a marker element at respective model value; For perf reasons, use only if requested model value is not already part of markerMap
* @param value The marker label equivalent model value
* @returns CSS style Object to apply to a marker element at respective model value
*/
getStyle: (value: number) => any;
}) => VNode[];
}
```
Note how markerList in generated types for both slots is SliderMarkerLabelArrayConfig[]. However, SliderMarkerLabelArrayConfig is already an array of SliderMarkerLabelConfig:
There is another problem.
Using the example with the correct type leads to Vue: Type Partial<CSSStyleDeclaration> is not assignable to type StyleValue at :style="markerList[val].style".
The type definition for when defining custom QSlider marker labels, defined here:
https://github.com/quasarframework/quasar/blob/881803b8bc91552ce67a10124d411df6b432a176/ui/src/components/slider/use-slider.json#L315-L316
https://github.com/quasarframework/quasar/blob/881803b8bc91552ce67a10124d411df6b432a176/ui/src/components/slider/use-slider.json#L408-L409
Results in an incorrect generated types.
Show generated TS interface
```ts export interface QSliderSlots { /** * What should the menu display after filtering options and none are left to be displayed; Suggestion:Note how
markerList
in generated types for both slots isSliderMarkerLabelArrayConfig[]
. However,SliderMarkerLabelArrayConfig
is already an array ofSliderMarkerLabelConfig
:https://github.com/quasarframework/quasar/blob/881803b8bc91552ce67a10124d411df6b432a176/ui/types/api/slider.d.ts#L43
So we end up with
typeof markerList === SliderMarkerLabelConfig[][]
.Thank you.
There is another problem. Using the example with the correct type leads to
Vue: Type Partial<CSSStyleDeclaration> is not assignable to type StyleValue
at:style="markerList[val].style"
.