
TypeScript の戻り値にしか出てこない型引数は as の言い換え — 修正したつもりでテストが revert を検出しない話
2026年8月3日
dispatch<T>(args): Promise<T> のように T が引数に現れない型引数は、呼び出し側のアサーションを API に埋め込んだだけで、サーバが { error } を返しても型検査を通してしまう。parse 関数で T を推論させる修正と、修正後に古いシグネチャに revert しても typecheck が緑のままになるオーバーロード比較の落とし穴、IsExact による pin のテスト設計、subscribe の引数が void 戻り値で全関数を受け入れる副作用まで含めて解説する。
tech-blogTypeScriptAPI design

Vitest の testTimeout に何が課金されているか — 「テストが遅い・不安定」の正体は 4 つともテストじゃなかった
2026年8月3日
7600 件の Vitest スイートで時々赤くなるテストの原因を割っていくと、犯人はソケット往復、モジュール読み込み、並列ディスク競合、使っていない jsdom の 4 つで、どれもテスト自体の仕事ではなかった。light-my-request への移行、モジュールスコープ import の効果、testTimeout の与え方、@vitest-environment node 漏れの検出まで、Vitest のサマリの transform / import / environment / tests の読み分けと一緒に解説する。
tech-blogVitesttesting

Vue のコンポーネント分割で残る継ぎ目 — @kebab-case と $emit('camelCase') を実際にコンパイルして確かめる
2026年7月26日
tech-blogVueTypeScript

undici を v8 に上げたら MockAgent が効かなくなった — Node 内蔵 fetch と globalDispatcher symbol の罠
2026年6月29日
tech-blogundiciNode.js