IT-Q

interface を同じ名前で2回宣言すると、どうなりますか。

2つの宣言の中身が統合され、両方のプロパティを持つ1つの型になります(宣言のマージ)。type は同じ名前で再宣言するとエラーになるので、ここが interface との大きな違いです。

面接官が見ているのは補強。宣言のマージを知っているか。

これは「window に独自のプロパティ(window.appConfig)を足したら、型エラーになりました。どう型を付けますか。」への追撃質問です。

よくある答えと、面談でどう見られるか

  • 2つの中身が統合される(宣言のマージ)
    その通りです。これを使って、既存の型にプロパティを足せます。
  • 後に宣言した方で上書きされる
    上書きではなく統合です。両方のプロパティを持つ型になります。
  • 重複の宣言としてエラーになる
    interface ではエラーになりません。type で同じ名前を2回宣言するとエラーになります。
  • 先に宣言した方だけが有効になる
    両方が統合されます。

模範解答

2つの宣言の中身が統合され、両方のプロパティを持つ1つの型になります(宣言のマージ)。

type(型エイリアス)は同じ名前で再宣言するとエラーになるので、ここが interface との大きな違いです。ライブラリや標準の型(Window など)に、自分のプロパティを足すときに使います。

対象: TypeScript 5.x〜7.0 照合した一次資料: 公式ドキュメント 照合: 2026-10-25 最終更新: 2026-10-25
お使いの版で挙動が違う場合があります。誤りに気づいたらこの解説を報告するから教えてください。