functional-ts

Installation
SKILL.md

Functional Domain Modeling in TypeScript

サーバーサイドTypeScriptでドメインモデルを書くときの原則。classベースのOOPではなく、TypeScriptの型システムを最大限に活用した関数型アプローチを採る。

1. 型によるドメインモデリング

Discriminated Unionで状態を表現する

ドメインエンティティの状態はclassではなくDiscriminated Unionで定義する。各状態を個別の型として定義し、状態固有のプロパティを必須にする。

// Good: 各状態が独立した型。状態固有のプロパティが必須
type Waiting = Readonly<{
  kind: "Waiting";
  passengerId: PassengerId;
}>;
Installs
2
First Seen
Apr 7, 2026
functional-ts — iwasa-kosui/functional-ts-principal