ドメイン駆動設計の喜びに触れたので、JavaScript で実装しているフロント側でも使いたいという気持ちが出てきたのですが、JavaScript のプロパティには型が指定できないようで、any 型を受けてクラスを生成するという風になってしまいます。
コンストラクター内でString()
やNumber()
を使って型の変更はできるのですが、データベースとの型の整合性をしっかり取るには引数から型を指定したいものです。
そういった問題を解決するために TypeScript があるのですが、型定義は TypeScript で、基本的な処理は JavaScript というとなんとも構成としては重い感じになってしまいます。[JavaScript ドメイン駆動]で調べても思想だけで、実際のコードが見当たらないので型が緩い言語とは根本的に噛み合ってなさそうです(JS には interface すらないので)。
Rust ほど厳格な型定義ではなくていいのですが、IntelliSense で補完が効くと、スペルミスによる実行時エラーが防げるので、TypeScript の導入も検討すべきか悩みどころです。DDD と出会ったおかげで、静的型言語がどんどん好きになってきました。