Dart 言語においてパターンマッチングの仕様策定が進行中ですが、現状でも現行の言語機能で、疑似的に Union Type を作成してパターンマッチング "もどき" を実装し、静的に網羅的な検査ができるようにしてみます。enum や「Dart 2.9 で新しく追加された exhaustive_cases Lint が便利」で紹介した exhaustive_cases Lint を使用する手法よりも表現力が増しますし、実装はやや冗長ながらも単純で明白です。あくまで基本的な機能を組み合わせただけの、かなり不完全で欠陥もある "もどき" ですが、網羅的な検査を switch 文で行う目的ならばこの手法で不満がないので、私はパターンマッチングを実装したパッケージよりもこの手法を好みます。以下、サンプルコードともに紹介します。 サンプルコードとその解説 import 'package:meta/me