如何在当前 Dart 中对代数数据类型进行编码?

Vas*_*kov 7 algebraic-data-types dart flutter sealed-class

如何对 Dart 中当前的代数数据类型进行编码?

代数数据类型也称为:

问题是,鉴于对它的支持尚未落地(请参阅问题#349),我如何在当前的 Dart / Flutter 中实现它?

互联网上解释了一些方法,例如我找到了图书馆matchsealed_unions图书馆、if-else方法和一些更棘手的技术。

但我真的很喜欢一些关于选择什么以及为什么选择它的更多专家意见。想法?