TypeScript のインターフェイスと型の違い

違い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
}

知らせ:

  1. 変数の型を定義したい場合は type を使用し、継承と制約を可能にしたい場合はインターフェイスを使用します。
  2. ライブラリの作成者である場合、または外部ライブラリの型定義を作成する場合は、インターフェイスを使用します。他の人にとっても拡張すると便利です。
  3. どれを使用すればよいかわからない場合は、type を使用することをお勧めします。

おすすめ

転載: blog.csdn.net/weixin_44684357/article/details/132116784