マージと拡張
マージと拡張は、型とインターフェースを扱う際の 2 つの異なる概念を指します。
マージを使用すると、同じ名前の複数の宣言を 1 つの定義にまとめられます。たとえば、同じ名前のインターフェースを複数回定義した場合です。
interface X { a: string;}
interface X { b: number;}
const person: X = { a: 'a', b: 7,};拡張とは、既存の型またはインターフェースを拡張または継承して、新しい型を作成する機能を指します。元の定義を変更せずに、既存の型へ追加のプロパティまたはメソッドを加える仕組みです。例:
interface Animal { name: string; eat(): void;}
interface Bird extends Animal { sing(): void;}
const dog: Bird = { name: 'Bird 1', eat() { console.log('Eating'); }, sing() { console.log('Singing'); },};