構造的型付けとは、参照情報上の型の名前を見ないで、データ値本体の分析でデータ値の型を識別するスタイルである。ただし、データ集合を分解して行き着くリテラルの型識別は事実上の名前的型付けになる。例えば構造体では、フィールド構造(各フィールドの型の種類と順序)が一致しているならばフィールド名が違っても同じ型と判定される。構造的型付けは、部分型の判定にも多用される。例えばオブジェクトでは、特定の関数/手続きの構造を双方が所持しているならば、その部分型での等価と見なされる。特定のフィールド構造を双方が所持している場合も同様である。ダックタイピング.ダックタイピングは、構造的型付けに類似した型付けのスタイルであり、オブジェクトが対象になることが多い。例えばオブジェクトが特定のプロパティ/フィールド/変数を所持しているか、または特定のメソッド/関数/手続きを所持しているならば等価判定される。これも部分型(サブタイプ)視点である。この等価判定は、エラー発生のないプロパティ参照またはメソッド実行に直結している。ダックタイピングの名称は、帰納法の一種であるダックテストに由来している。分類には諸説あり、「ダックタイピングは実行時の動的な型付けであり、構造的型付けはコンパイル時の静的な型付けである」とみなす者もいれば、「構造的型付けはコンパイル時の静的なダックタイピングである」とみなす者もいる。型推論.議論.型付けについて.静的型付き言語はいわゆるコンパイラ言語に、動的型付き言語はいわゆる動的プログラミング言語によくみられる。型検査がどのように働くのかを見るために、次の擬似コードを考える。プログラミング言語が静的型付けをもつことは必ずしも動的型付けをもたないことを意味するわけではない。例えばJavaは静的型付けを採用しているが、処理によっては動的な型情報の取得を必要とするものもあり、それらは動的型付けの一形態とみなせる。静的型付けと動的型付けの違いについては様々な議論がある。