La diferencia entre interfaz y tipo en TypeScript

diferencia 1

  • Tanto el uso de interfaz como el tipo son formas comunes de representar una estructura de datos determinada.
  • La forma en que se define es ligeramente diferente.
  • Cuando se define el tipo, hay un símbolo "="
interface User {
    
    
	name: string,
	age: number
}
type User = {
    
    
	name: string,
	age: number
}

diferencia 2

  • interface puede declarar la misma interfaz varias veces. Se fusionarán para formar una definición de interfaz.
  • El tipo solo se puede declarar una vez.

interfaz: se puede declarar varias veces y al final se pueden reutilizar juntas;

interface User{
    
    
	name: string
}
interface User{
    
    
	age: number
}
let Person: User = {
    
    
	name: 'myName',
	age: 100
}

tipo: si declara nuevamente, se informará un error

type User = {
    
    
	name: string
}
type User = {
    
      // 报错,Throw error: Duplicate identifier
	age: number
}

diferencia 3

  • El método de herencia es diferente: la interfaz se hereda mediante el método extender y el tipo se hereda mediante el símbolo &;

interfaz

interface PointX {
    
    
    x: number
}
interface Point extends PointX {
    
    
    y: number
}

tipo

type PointX = {
    
    
    x: number
}
type Point = PointX & {
    
    
    y: number
}

La interfaz y el tipo pueden extenderse entre sí.

interfaz

type PointX = {
    
    
    x: number
}
interface Point extends PointX {
    
    
    y: number
}

tipo

interface PointX {
    
    
    x: number
}
type Point = PointX & {
    
    
    y: number
}

Aviso:

  1. Si desea definir un tipo de variable, use tipo, y si desea poder heredar y restringir, use interfaz.
  2. Utilice la interfaz si es el autor de una biblioteca o crea definiciones de tipos para una biblioteca externa. A otros les conviene ampliarlos también.
  3. Si no sabe cuál usar, se recomienda utilizar tipo.

Supongo que te gusta

Origin blog.csdn.net/weixin_44684357/article/details/132116784
Recomendado
Clasificación