型の識別をする際、名前的型付けは型の名前を基準とし、構造的片付けは型の構造を基準とする。部分型関係を定義するのに、名前的型付けは明示的な宣言(クラスやインターフェイスの継承など)を必要とするのに対し、構造的型付けは構造の包含関係等で判定できるので必ずしも明示的な宣言を必要としない……というのが基本的な違いだと思うけど。

構造的型付けだからといって型に名前を付けられないわけじゃないから、関数等の引数の型は普通に指定できるでしょ。自分はTypeScriptを書かないのでその型システムをきちんと知っているわけではないけれど、TypeScriptで関数の引数の型を指定できないなんて聞いたことがないし。
「実行前に〜」云々は静的型付けのことしか想定していないから、そもそも名前的型付けと構造的型付けの比較点として持ち出すのは的外れ。