Skip to content
This repository has been archived by the owner on Jun 23, 2022. It is now read-only.

Исправление тайпингов для withYMaps #263

Open
oceandrama opened this issue Oct 8, 2020 · 3 comments · May be fixed by #265
Open

Исправление тайпингов для withYMaps #263

oceandrama opened this issue Oct 8, 2020 · 3 comments · May be fixed by #265
Labels
types Problems with types

Comments

@oceandrama
Copy link

В первую очередь, большое спасибо за библиотеку! Хотел бы предложить небольшое улучшение
HOC withYMaps должен возвращать компонент с теми же пропсами, который был в него передан, но за исключением WithYMapsProps, т.к. он их сам добавляет. Сейчас приходится делать так

interface ComponentProps {...}
const Component: FC<ComponentProps & WithYMapsProps> = () => {...}

export default withYMaps(Component) as FC<ComponentProps>

А хотелось бы так

interface ComponentProps extends WithYMapsProps {...}
const ComponentNoAPI: FC<ComponentProps> = () => {...}

export default withYMaps(Component)
@mmarkelov
Copy link
Contributor

@oceandrama привет! Спасибо за предложение. Постараюсь посмотреть

@mmarkelov mmarkelov added the types Problems with types label Oct 12, 2020
@mmarkelov
Copy link
Contributor

@oceandrama можете собрать небольшой пример на codesandbox?
По идее withYMaps возвращает компонент без дополнительных пропсов

export function withYMaps<P>(
component: React.ComponentType<P>,
waitForApi?: boolean,
modules?: string[]
): React.ComponentType<P>;

@oceandrama
Copy link
Author

@mmarkelov Ну да, в этом и проблема. Предложение в том, чтобы он вырезал из пропсов WithYMapsProps, т.к. после оборачивания в HOC проп ymaps остаётся обязательным. Если написать вот так, проблема исчезнет

export function withYMaps<P>(
  component: ComponentType<P & WithYMapsProps>,
  waitForApi?: boolean,
  modules?: string[]
): ComponentType<P>;

Т.е. в результате будет компонент без WithYMapsProps

@mmarkelov mmarkelov linked a pull request Oct 12, 2020 that will close this issue
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
types Problems with types
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants