違い1
- インターフェイスと型の両方を使用することは、特定のデータ構造を表す一般的な方法です。
- 定義の仕方が少し異なります。
- type が定義されている場合、「=」記号があります。
interface User {
name: string,
age: number
}
type User = {
name: string,
age: number
}
違い2
- インターフェースは同じインターフェースを複数回宣言できます。これらは結合されてインターフェース定義を形成します。
- type は 1 回だけ宣言できます。
インターフェース: 複数回宣言でき、最終的に一緒に再利用できます。
interface User{
name: string
}
interface User{
age: number
}
let Person: User = {
name: 'myName',
age: 100
}
type: 再度宣言するとエラーが報告されます
type User = {
name: string
}
type User = {
// 报错,Throw error: Duplicate identifier
age: number
}
違い3
- 継承方法が異なり、インターフェイスは extend メソッドによって継承され、型は & 記号によって継承されます。
インターフェース
interface PointX {
x: number
}
interface Point extends PointX {
y: number
}
タイプ
type PointX = {
x: number
}
type Point = PointX & {
y: number
}
インターフェイスと型は相互に拡張できます
インターフェース
type PointX = {
x: number
}
interface Point extends PointX {
y: number
}
タイプ
interface PointX {
x: number
}
type Point = PointX & {
y: number
}
知らせ:
- 変数の型を定義したい場合は type を使用し、継承と制約を可能にしたい場合はインターフェイスを使用します。
- ライブラリの作成者である場合、または外部ライブラリの型定義を作成する場合は、インターフェイスを使用します。他の人にとっても拡張すると便利です。
- どれを使用すればよいかわからない場合は、type を使用することをお勧めします。