Reply to the post by @eliduvid:
а, в смысле алгебраические типы обыкновенные. их можно эмулировать, но даже и не нужно, тип
false|null|string
уже обязывает обработать все случаи, но гибче. например если бы на обоих типах был бы один метод, он был бы доступен без проверки.
А, понял, не распознал сразу, что |
это буквально оператор для составления union типа :)