Skip to content

refactor: createScanAction.ts の api signature を ScanApi 型として export (#255)#256

Merged
ymnao merged 1 commit into
mainfrom
refactor/scan-api-type-#255
Jun 28, 2026
Merged

refactor: createScanAction.ts の api signature を ScanApi 型として export (#255)#256
ymnao merged 1 commit into
mainfrom
refactor/scan-api-type-#255

Conversation

@ymnao

@ymnao ymnao commented Jun 28, 2026

Copy link
Copy Markdown
Owner

概要

src/stores/createScanAction.tsCreateScanActionOptions.api field の inline thunked signature () => (...args: TArgs) => Promise<TResult> を named type alias ScanApi<TArgs extends unknown[], TResult> として切り出し export。型の意図 (thunk 経由で実 API 関数を返す理由) を docstring 付きで明示し、将来 scan 系 helper を増やした際の参照点を確保する。

関連 Issue

Closes #255

移行 Stage

該当なし (Electron 移行完了後の internal refactor)

変更内容

  • src/stores/createScanAction.ts: ScanApi<TArgs extends unknown[], TResult> 型 alias を追加 + export、CreateScanActionOptions.api field の型を inline 形式から ScanApi<TArgs, TResult> に置換
  • doc comment は ScanApi 型 alias 側に移動 (型自身の意味を説明する役割が適切)
  • caller (src/stores/backlink.ts / src/stores/wikilink.ts) と test (src/stores/createScanAction.test.ts) は createScanAction<TState, TArgs, TResult>(...) の generic 推論で互換、変更なし

Option B (caller サイトでも ScanApi 注釈を強制) は generic 型推論で既に defect-detection が機能するため冗長と判断、Option A (最小変更) を採用。

PR #251 (createScanAction.test.ts の vi.fn() typing 統一) の /simplify pass 2 副産物として発見。

動作確認

  • node_modules/.bin/biome check src/stores/createScanAction.ts clean
  • node_modules/.bin/tsc --noEmit -p tsconfig.web.json clean
  • node_modules/.bin/tsc --noEmit -p tsconfig.node.json clean
  • node_modules/.bin/tsc --noEmit -p tsconfig.e2e.json clean
  • node_modules/.bin/vitest run — 98 files / 2230 pass / 2 skipped
  • /code-review low: (none) — type-level pure change、runtime correctness bug 該当なし
  • /simplify pass 1 (4 reviewer 並列): 全 (none) — Reuse / Simp / Eff / Alt 全て採用なし

スクリーンショット

UI 変更なし

…t> 型として export (#255)

`CreateScanActionOptions.api` field の inline thunked signature
`() => (...args: TArgs) => Promise<TResult>` を named type alias
`ScanApi<TArgs extends unknown[], TResult>` として切り出し export。

- 型の意図 (thunk 経由で実 API 関数を返す理由) を docstring 付きで明示
- 将来 scan 系 helper を増やした際の参照点を確保
- caller (`src/stores/backlink.ts` / `src/stores/wikilink.ts`) と test
  (`createScanAction.test.ts`) は generic 推論で互換、変更不要

Option A (最小変更、createScanAction.ts のみ) を採用。Option B (caller
サイトでも `ScanApi` 注釈を強制) は `createScanAction<...>` の generic
で既に型推論が機能するため冗長で skip。

PR #251 (createScanAction.test.ts の vi.fn() typing 統一) の /simplify
pass 2 副産物として発見。

Refs #255
@ymnao ymnao merged commit e8b284f into main Jun 28, 2026
9 checks passed
@ymnao ymnao deleted the refactor/scan-api-type-#255 branch June 28, 2026 01:13
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.

refactor: createScanAction.ts の api signature を ScanApi<TArgs, TResult> 型として export

1 participant