🛡
[TypeScript] インターフェース(interface)と型エイリアス(type)の違い
はじめに
TypeScriptをより深く理解したく下記書籍を読みました。
インターフェース(interface)と型エイリアス(type)の違いについて情報を整理したかったので、執筆します。
結論
1. interface 同士で継承できる
- 組み込みグローバルインターフェースや npm パッケージなどのサードパーティコードを扱う時に便利
interface 継承元 {
変数名1: データ型;
}
interface 継承先 extends 継承元 {
変数名2: データ型;
}
2. クラス宣言の構造の型チェックに
- クラス宣言の構造の型チェックに interface が利用できます
- 型エイリアス(type)ではクラス宣言では使えません。
3. interface の方が処理が速い
- interface は、内部的に簡単にキャッシュできるので一般的に型チェックでより高速に処理される
- 型エイリアス(type)は、オブジェクトリテラルの動的なコピペとして処理されるため、interface より遅い
Discussion
どこかにエビデンス(ベンチマーク結果や公式の説明)があったりするでしょうか?🤔