Хочу сделать функцию, возвращающую компонент. Упрощенный пример кода:
export default (
propsDefinition = {},
executeOnMounted: (props) => void = () => {},
) => defineComponent({
props: propsDefinition,
setup(props) {
onMounted(() => {
executeOnMounted(props);
});
},
});
Как корректно, используя дженерики, описать типы для propsDefinition и свойства props в функции executeOnMounted, учитывая что из первого получается второе?
UPD: Чтобы не было недопонимания опишу как это будет использоваться.
import useOnMountedComponent from './...'
export default useOnMountedComponent({
someProp: { type: String, required: true }
}, (props) => {
alert(`On mounted: ${props.someProp}`);
});
И вот мне нужно, чтобы TypeScript понимал, что props.someProp - такое свойство есть и это строка, также как он понимает, когда эти пропсы используются в setup(props).