実践TypeScriptバックエンド開発:データと関数によるドメインモデリングで堅牢性を高める

サポートページ

お詫びと訂正(正誤表)

本書の以下の部分に誤りがありました。ここに訂正するとともに、ご迷惑をおかけしたことを深くお詫び申し上げます。

(2026年10月19日最終更新)

第10章 P.240:10.3.3「サンプル実装」の「ドメインモデル」、register関数

誤
const register = (aggregate: Product): [Product, ProductRegistered] => {
  const event = R.pipe(
    parse({
      ...aggregate,
      sequenceNumber: Aggregate.incrementSequenceNumber(
        aggregate.sequenceNumber,
      ),
    }),
    DomainEvent.generate(aggregateName, ProductRegistered.eventName, {
      product: aggregate,
    }),
  );
  return [aggregate, event];
};
正
const register = (aggregate: Product): [Product, ProductRegistered] => {
  const product = parse({
    ...aggregate,
    sequenceNumber: Aggregate.incrementSequenceNumber(aggregate.sequenceNumber),
  });
  const event = R.pipe(
    product,
    DomainEvent.generate(aggregateName, ProductRegistered.eventName, {
      product,
    }),
  );
  return [product, event];
};