Я знаю, что можно добавлять методы и свойства в различимые объединения, но вы можете добавить неизменяемое поле, которое должно быть установлено при создании экземпляра объединения, так же, как поля в записи?
Полагаю, мне хотелось бы объединить тип объединения и тип записи, например:
type union =
| OptionOne of int
| OptionTwo of string
{
AFieldUsedForBothCases : string
}
, которая не является действительной декларацией.
Я знаю, что это можно решить, создав тип записи:
type record =
{
AFieldUsedForBothCases : string
TheDiscriminatedUnion : union
}
но я бы хотел сделать что-то похожее на первый пример, если это возможно.