[解決済み】TypeScriptのインターフェースと型について
2022-03-18 03:31:18
質問
これらの文の違いは何ですか(
interface
対
type
)をTypeScriptで作成することはできますか?
interface X {
a: number
b: string
}
type X = {
a: number
b: string
};
解決方法は?
2021年3月更新 : より新しい「TypeScriptハンドブック」(でも紹介されています。 nju-clc 以下の回答 という項目があります。 インターフェースとタイプエイリアスの比較 で、その違いについて説明しています。
オリジナルアンサー(2016年)
の通りです。 (現在はアーカイブされている)TypeScript言語仕様 :
インターフェース宣言とは異なり、常に名前の付いたオブジェクトの型を導入します。 型エイリアス宣言 は、プリミティブ型、ユニオン型、交差型を含む、あらゆる種類の型の名前を導入することができます。
仕様書には、さらに次のような記載があります。
インターフェイスの種類 の型エイリアスとの類似点が多くあります。 しかし、インターフェース型はより多くの機能を提供するため は、一般に型エイリアスよりも優先されます。例えば、インターフェイス型
interface Point { x: number; y: number; }
は、型の別名として書くことができます。
type Point = { x: number; y: number; };
ただし、そうすると、以下の機能が失われることになります。
- <ストライク インターフェイスは extends 節または implements 節で命名できるが、オブジェクトの型リテラルの型エイリアスは命名できない。 TS 2.7以降、真でなくなった。
- インターフェースは、複数の マージされた宣言 しかし、オブジェクト型リテラルに対する型エイリアスはそうではありません。
関連
-
[解決済み] as "というキーワードは何を意味するのでしょうか?
-
[解決済み] インターフェースと抽象クラスの違いは何ですか?
-
[解決済み] インターフェースと抽象クラス(一般的なOO)
-
[解決済み] TypeScriptで文字列を数値に変換する方法とは?
-
[解決済み] TypeScript で `window` に新しいプロパティを明示的に設定するにはどうすればよいですか?
-
[解決済み] TypeScriptでパラメータとして強く型付けされた関数は可能か?
-
[解決済み] TypeScriptでオブジェクトに動的にプロパティを割り当てるには?
-
[解決済み] Pythonにおける抽象クラスとインターフェースの違い
-
[解決済み] Typescript によるインターフェース型チェック
-
[解決済み] String型とstring型の違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Angular 2の@ViewChildアノテーションがundefinedを返す
-
[解決済み] ts1206 デコレーターはここでは無効です、Angular 2。
-
[解決済み] TypeScriptの円形型参照
-
ts 学習日記1 AssertionError [ERR_ASSERTION]: タスク関数を指定する必要があります
-
[解決済み] TypeScriptのオブジェクトリテラルでの型定義
-
[解決済み】WebStorm/PhpStormのダブルクォートでTypeScriptの自動インポートを行う。
-
[解決済み】タイプライター。TS7006: パラメータ 'xxx' は暗黙のうちに 'any' 型を持つ。
-
[解決済み] typescript インターフェースは、次の2つのプロパティのうちどちらかが存在する必要があります。
-
[解決済み] Typescript において、型とインターフェースの違いは何ですか?
-
[解決済み] Typescript流のMongoose...?