Тест · Сужение типов · урок 8 из 12Тест — размеченное объединениеЧто делает объединение размеченным и как его сузить?[A]Объединение размечено, когда у вариантов вообще нет общих полей и tsc различает их по одной форме. Сужают его чтением любого свойства: само чтение показывает, какой вариант перед вами, и дальше объект так и остаётся суженным.[B]Признаком может быть только поле type типа string, и сужение работает лишь внутри switch. В if tsc сравнивает объекты целиком, оставляет всё объединение, и особые поля варианта в ветке недоступны.[C]Каждый вариант объявляет одно и то же поле со своим литеральным типом — признак, например kind: "circle" или kind: "square". Его проверка в if или switch сужает весь объект до одного варианта, вместе с его полями.[D]Проверка сужает только само поле-признак, а остальной объект сохраняет поля всех вариантов сразу. Поэтому поле, которое есть лишь у одного варианта, и внутри ветки приходится читать через ?..← НазадРазмеченные объединенияДалее →Проверка полноты через never