自ブログからの引用です。 概要 ドメイン駆動設計で重要な要素となる値オブジェクトに関して、TypeScriptではclassでprimitiveが宣言できないなど言語特性的に工夫が必要な点があり長い間悩んできたのですが、最近になってようやく効果的なパターンが何種類か定まってきたので、本記事では下記のパターンに関して私が実践している値オブジェクトの書き方をご紹介させて頂きます。 アジェンダ プロパティが1つの値オブジェクト プロパティが2つ以上の値オブジェクト プロパティ間の組み合わせが存在する値オブジェクト 1. プロパティが1つの値オブジェクト SingleValueな値オブジェクトをTypeScriptで宣言する場合に皆さんはどの様にしますか? 最も単純なパターンだとclassを利用する方法がありますが、以下の様な問題点があります。 例) class EmailAddress { va