1. ホーム
  2. javascript

[解決済み] Typescript において、型とインターフェースの違いは何ですか?

2022-06-19 20:49:41

質問

次のような違いがありますか?

type Foo = { 
    foo: string 
};
interface Foo {
   foo: string;
}

どのように解決するのですか?

インターフェイスは 拡張

interface A {
  x: number;
}
interface B extends A {
  y: string;
}

また 増強された

interface C {
  m: boolean;
}
// ... later ...
interface C {
  n: number;
}

しかし、型のエイリアスは、インターフェースが表現できないものを表現することができます。

type NumOrStr = number | string;
type NeatAndCool = Neat & Cool;
type JustSomeOtherName = SomeType;

ですから、一般的には、質問にあるような単純なオブジェクトの型がある場合、通常はインターフェイスの方が良い方法です。インターフェイスとして書けないものを書きたい、あるいは別の名前を付けたいという場合は、タイプエイリアスを使うのがよいでしょう。