Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix: 'FailInfo' is not defined and type 'EventCallable<void>' is not assignable to type 'EventCallable<FailInfo<T>>' #526

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

BlackPoretsky
Copy link

@BlackPoretsky BlackPoretsky commented Jan 18, 2025

Не всегда необходимо передавать информацию об ошибке в событие otherwise. Эти изменения не предотвращают передачу информации, но, по крайней мере, TypeScript перестанет выдавать ошибки. Экспорт FailInfo необходим, если нужно указать тип информации об ошибке в generic параметре у createEvent<FailInfo>. На данный момент приходится использовать следующий подход:

type RemoteOperation = Mutation<any, any, any> | Query<any, any, any, any>;
type RetryConfig<T extends RemoteOperation> = Parameters<typeof retry<T>>['1'];
type Otherwise<T extends RemoteOperation> = Exclude<RetryConfig<T>['otherwise'], undefined>;
type FailInfo<T extends RemoteOperation> = Exclude<Parameters<Otherwise<T>>['0'], undefined>;

export const sessionSignOut: EventCallable<FailInfo<typeof sessionRefreshMut>> =
  createEvent<FailInfo<typeof sessionRefreshMut>>();

Не всегда необходимо передавать информацию об ошибке в событие otherwise. Эти изменения не предотвращают передачу информации, но, по крайней мере, TypeScript перестанет выдавать ошибки. Экспорт FailInfo необходим, если нужно указать тип информации об ошибке в generic параметре у createEvent<FailInfo<T>>. На данный момент приходится использовать следующий подход:
```
type RetryConfig = Parameters<typeof retry<typeof sessionRefreshMut>>['1'];
type Otherwise = Exclude<RetryConfig['otherwise'], undefined>;
type FailInfo = Exclude<Parameters<Otherwise>['0'], undefined>;

export const sessionSignOut: EventCallable<FailInfo> = createEvent<FailInfo>();
```
Copy link

netlify bot commented Jan 18, 2025

Deploy Preview for farfetched canceled.

Name Link
🔨 Latest commit b3ec67a
🔍 Latest deploy log https://app.netlify.com/sites/farfetched/deploys/678f6f43d8769e0008448768

@igorkamyshev
Copy link
Owner

Логично! Спасибо 🙏

Докинешь еще ченджлог через pnpm changeset?

…for the otherwise field in the retry configuration object has been extended (enabling the use of an event of type EventCallable<void>).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants