Предположим, у меня есть следующие типы:
type TypeA = { A: string }
type TypeB = { B: string }
, и у меня есть оба типа объединения для них:
type MyUnionType = TypeA | TypeB
С типом, который просто содержит тип объединения:
type MyContainer = { Union: MyUnionType }
теперь, если я создаю экземпляр одного из типов в типе объединения:
let resultA = { A = "abc" }
, когда я пытаюсь присвоить этому экземпляру значение в контейнере
let result = { Union = resultA }
компилятор жалуется, говоря:
Ошибка компиляции (строка 10, столбец 24): ожидалось, что это выражение будет иметь тип MyUnionType, но здесь имеет тип TypeA
но TypeA
является одним из допустимых типов, указанных в объединении! Как я могу присвоить его свойству Union?
Вот пример программы: https://dotnetfiddle.net/fgJKpM