TypeScriptのtypeとinterfaceの違いついて質問です。
typeだと以下のように配列を使えますが、interfaceだと使えないのはなぜでしょうか?
type hoge = { id: number; name: string; }[];
公式ハンドブック( https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#differences-between-type-aliases-and-interfaces )
からは、以下のような記述を見つけました。
Interfaces may only be used to declare the shapes of objects, not rename primitives.
(インターフェースは、オブジェクトの形状を宣言するためにのみ使用でき、プリミティブの名前を変更することはできません。)
この記述が配列を使えない根拠になりそうだと思いました。
しかし、JavaScriptでは配列もオブジェクトの一種であるとどこかに書いてあった気がしていて、
- 公式ハンドブックの書き方だと、配列もinterfaceを使えることにならないだろうか
- 公式ハンドブックの記述をどのように解釈すれば配列は使えないとなるのか
と考えてしまいました。
よろしくお願いいたします。
あなたの回答
tips
プレビュー