intersection 型 (A & { x }) が複数箇所で繰り返されたらベース型にプロパティを寄せる
TypeScript
設計判断
service 内で BoardTotalSearchContext & { subtypeIds: string[] } のような intersection 型を複数箇所で使っている場合、実質「ベース型にそのプロパティも必要」とコードが言っている。ベース型側にそのプロパティを追加して intersection を解消する方が型の意図が明確になる。ただし必須プロパティ追加はその型を返す/受け取る全範囲に影響するため、先に参照範囲を調査して影響が小さいことを確認してから寄せる。service 固有の一時的な型定義をその場で作るより、ドメイン型に責務を寄せる。