@mic-rexjs/usecases-react 1.6.1 → 1.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -33,7 +33,26 @@ export interface UseCaseHookOwnOptions<T, TUseCaseOptions extends object> extend
33
33
  }
34
34
  export type UseCaseHookOptions<T, TUseCaseOptions extends object = object> = TUseCaseOptions & UseCaseHookOwnOptions<T, TUseCaseOptions>;
35
35
  export interface UseCaseHook {
36
- <T, TEntityReducers extends EntityReducers<T>>(usecase: EntityUseCase<T, TEntityReducers & EntityReducers<T>> & UseCase<TEntityReducers>, options?: UseCaseHookContextualOptions<T>): CoreCollection<T, TEntityReducers, null>;
37
- <T, TEntityReducers extends EntityReducers<T>, TUseCaseOptions extends object = object>(initailEntity: T | EntityGetter<T>, usecase: EntityUseCase<T, TEntityReducers, TUseCaseOptions> & UseCase<TEntityReducers, TUseCaseOptions>, options?: UseCaseHookOptions<T, TUseCaseOptions>, deps?: unknown[]): CoreCollection<T, TEntityReducers>;
36
+ <T, TEntityReducers extends EntityReducers<T>>(usecase: EntityUseCase<T, TEntityReducers> &
37
+ /**
38
+ * 如果不使用 `&`,那么很多情况下 `options` 类型无法被正确推导;
39
+ * 因为使用 `&` 是为了让该参数 `usecase` 的泛型 `T` 推导占优先级,
40
+ * 从而保证 `options` 里的泛型 `T` 是根据 `usecase` 来推导的。
41
+ */
42
+ UseCase<EntityReducers<T>>, options?: UseCaseHookContextualOptions<T>): CoreCollection<T, TEntityReducers, null>;
43
+ <T, TEntityReducers extends EntityReducers<T>, TUseCaseOptions extends object = object>(initailEntity: T | EntityGetter<T>, usecase: EntityUseCase<T, TEntityReducers, TUseCaseOptions> &
44
+ /**
45
+ * 1. 如果不使用 `&`,那么很多情况下 `options` 类型无法被正确推导;
46
+ * 因为使用 `&` 是为了让该参数 `usecase` 的泛型 `T` 推导占优先级,
47
+ * 从而保证 `options` 里的泛型 `T` 是根据 `usecase` 来推导的。
48
+ *
49
+ * 2. 以 `TEntityReducers` 代替了 `EntityReducers<T>`,
50
+ * 因为如果使用 `EntityReducers<T>` 则会导致其推导优先级比 `initailEntity` 还高,
51
+ * 这是不应该的,所以要使用不带泛型参数的 `TEntityReducers`。
52
+ *
53
+ * 推导权重等级应该是:`initailEntity` > `usecase` > `options`,
54
+ * 即:以 `initailEntity` 中的泛型 `T` 为准。
55
+ */
56
+ UseCase<TEntityReducers, TUseCaseOptions>, options?: UseCaseHookOptions<T, TUseCaseOptions>, deps?: unknown[]): CoreCollection<T, TEntityReducers>;
38
57
  <T extends Reducers, TUseCaseOptions extends object = object>(usecase: UseCase<T, TUseCaseOptions>, options?: TUseCaseOptions, deps?: unknown[]): T;
39
58
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mic-rexjs/usecases-react",
3
- "version": "1.6.1",
3
+ "version": "1.6.3",
4
4
  "description": "React-based solution for use usecases of Clean Architecture",
5
5
  "private": false,
6
6
  "keywords": [
@@ -48,7 +48,7 @@
48
48
  "@commitlint/cli": "^17.6.6",
49
49
  "@commitlint/config-angular": "^17.6.6",
50
50
  "@jest/globals": "^29.5.0",
51
- "@mic-rexjs/usecases": "^1.4.11",
51
+ "@mic-rexjs/usecases": "^1.4.20",
52
52
  "@testing-library/react": "^14.0.0",
53
53
  "@types/node": "^20.4.2",
54
54
  "@types/react": "^18.2.14",