はじめに Reactで画面の表示切り替えをフラグで管理するコードは、いろいろなプロジェクトで見かけます。 const [isLoading, setIsLoading] = useState(false); const [isError, setIsError] = useState(false); const [hasData, setHasData] = useState(false); const [data, setData] = useState<User[]>([]); const [error, setError] = useState<Error | null>(null); 一見無害に見えるこのコードは、状態が増えるにつれて指数関数的に複雑化します。 本記事では、なぜフラグ管理が破綻するのかを構造的に分析し、TypeScriptのDiscriminated Unionと有

