Всем привет.
Если какой нибудь способ переиспользовать generics, иначе приходится писать дублирующийся код.
Пример существующего компонента-функции на реакте
export function CRUDModalApi<
T extends { id: number | null },
Service extends ICrudService<T> = ICrudService<T>,
Props extends ICRUDModalProps<T> = ICRUDModalProps<T>
>(props: ICRUDModalApiProps<T, Service, Props>) {
// ...body
}
export type ICRUDModalApiProps<
T extends { id: number | null },
Service extends ICrudService<T> = ICrudService<T>,
Props extends ICRUDModalProps<T> = ICRUDModalProps<T>
> = {
service: Service;
modal: (props: Props) => JSX.Element;
} & Omit<Props, 'loading' | 'children'>;