Тест · Сужение типов · урок 6 из 12Тест — оператор inКак оператор in сужает объединение объектных типов?[A]"swim" in animal при запуске проверяет, есть ли у объекта такой ключ, и tsc сужает тип по ответу: в ветке true остаются варианты с swim, в ветке false — остальные. Это работает с обычными объектными типами, класс не нужен.[B]in сужает только ветку true: в ветке false остаётся всё объединение, ведь отсутствие ключа ничего не говорит о том, какой вариант перед вами, поэтому после if объект придётся проверить ещё раз.[C]in работает только внутри tsc: он ищет ключ в объявленных типах и стирается из JavaScript, поэтому при запуске объект никто не проверяет, и в обеих ветках остаётся всё объединение объектных типов.[D]in сужает только экземпляры классов, потому что ищет ключ по цепочке прототипов класса. С обычными объектными типами из type в обеих ветках остаётся всё объединение, поэтому сначала придётся добавить общее поле с литеральным типом.← НазадПроверки in и instanceofДалее →Размеченные объединения