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
お使いの版で挙動が違う場合があります。誤りに気づいたらこの解説を報告するから教えてください。