インターフェイスとタイプの違いは何ですか?この記事ではTypeScriptにおけるインターフェースと型を比較し、インターフェースと型の違いを知り、実際に使う際にはどちらを選べばよいのかを紹介します!
TypeScript を使用する場合、interface
と type
を使用しますが、これらは同じように使用されるようです。違いはなく、どれも非常によく使用できるため、両者の違いを実際に理解することはほとんどありません。私たちはよく次のようにタイプを定義します:
interface Point { x: number; y: number; }
または次のように:
type Point = { x: number; y: number; };
interface
type
の違いはマイナー構文宣言だけではありません。そこで今回は、この二人の間に隠された秘密を見ていきたいと思います。
TypeScript には、boolean
、number
、string## などの基本的な型があります。 # 。高レベルの型を宣言したい場合は、
type alias を使用する必要があります。
という点に注意してください。新しい型は定義しませんでした。 type キーワードを使用すると、新しい型を作成しているように見えるかもしれませんが、型に新しい名前を付けているだけです。
typeとは異なり、インターフェイスはオブジェクト タイプに限定されます。これらは、オブジェクトとそのプロパティを説明する方法です。型エイリアス宣言は、任意のプリミティブ型、共用体、または交差に使用できます。
この点で、インターフェイスはオブジェクト タイプ に制限されます。
interface PartialPointX { x: number; } interface Point extends PartialPointX { y: number; }
type PartialPointX = { x: number; }; interface Point extends PartialPointX { y: number; }
type PartialPointX = { x: number; }; type Point = PartialPointX & { y: number; };
interface PartialPointX { x: number; } type Point = PartialPointX & { y: number; };
interface Point { x: number; y: number; } class SomePoint implements Point { x = 1; y = 2; } type AnotherPoint = { x: number; y: number; }; class SomePoint2 implements AnotherPoint { x = 1; y = 2; } type PartialPoint = { x: number; } | { y: number; }; // Following will throw an error class SomePartialPoint implements PartialPoint { x = 1; y = 2; }
// object type PartialPointX = { x: number; }; type PartialPointY = { y: number; }; // 并集 type PartialPoint = PartialPointX | PartialPointY; // 交集 type PartialPoint = PartialPointX & PartialPointY;
// These two declarations become: // interface Point { x: number; y: number; } interface Point { x: number; } interface Point { y: number; } const point: Point = { x: 1, y: 2 };
type キーワードを使用してのみ定義できます。
type Point = [x: number, y: number];
interface Point { coordinates: [number, number] }
プログラミング入門著者: SARANSH KATARIA
プログラミング関連の知識については、
以上がTypeScript のインターフェイスと型の違いを確認するための簡単な比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。