Номинальное и структурное подтипы в типизации отличаются подходом к определению совместимости типов. 12
При номинальной типизации совместимость определяется на основе явных деклараций в коде программы, например, на именах классов и иерархии наследования. 1 В этом случае нужно явно указать, что тип является подтипом другого типа. 2
Структурная типизация определяет совместимость типов на основе структуры этих типов, а не на явных декларациях. 1 Экземпляр типа Foo является подтипом Bar, если в него входят все члены типа Bar и дополнительные члены. 2
Таким образом, при номинальной типизации проверка происходит по имени типа, а при структурной — по его структуре. 4