Тест · Интерфейсы и структурная типизация · урок 6 из 12Тест — форма, а не имяПочему литерал объекта, нигде не объявленный как Point, подходит параметру Point?[A]Потому что интерфейс стирается ещё до того, как tsc проверит программу, и у параметра на деле тип any; объяви вы Point псевдонимом type, tsc потребовал бы совпадения имени Point.[B]Потому что tsc сравнивает только имена свойств: объект, где в x лежит строка, тоже подходит под Point, а неверный тип обнаружится позже, уже при запуске, когда программа попробует что-нибудь посчитать с этим x.[C]Потому что tsc доверяет объектным литералам: литерал, написанный вручную, проходит вовсе без проверки, а значение из переменной подходит, только если его объявили с типом Point.[D]TypeScript сравнивает типы по форме, а не по имени. Значение подходит под Point, как только у него есть все нужные свойства нужных типов; связывать его с именем Point не надо. В Java или C# имя должно совпасть.← НазадСтруктурная типизацияДалее →Лишние свойства в литерале