diferencia Letra de imprenta en la interfaz y el tipo de

https://github.com/SunshowerC/blog/issues/7


Siempre usamos la transcripción de la interfaz de uso y el tipo, las especificaciones oficiales dicen que un poco menos de dos diferencia
interfaz Una puede ser un nombre en el extiende cláusula o los implementos, sino una del tipo alias para CAN un objeto del tipo no literal.
Una interfaz puede tener tener múltiples combinada declaraciones, sino un tipo alias para un literal tipo de objeto no puede.
pero los ejemplos no demasiado específicos.

Ming no dijo las palabras oscuras, directamente de la diferencia.

El mismo punto

puede describir un objeto o función

interfaz de

interfaz de usuario de {
  name: String
  Edad: Número
}

interfaz SETUSER {
  (name: String, Edad: Number): void;
}

tipo

escriba el usuario = {
  name: String
  Edad: Número
};

tipo SETUSER = (name: string, edad : Number): void;

Expandir (se extiende) el tipo cruz (Tipos intersección)

interfaz de lata se extiende, pero no se permite el tipo se extiende y aplicar, pero el tipo de interfaz se puede lograr que falta extenderse a través de un comportamiento de tipo cruz, y los dos no son independientes uno de otro, que es interfaz de lata se extiende tipo, el tipo también puede cruzar el tipo de interfaz.
Aunque el efecto es casi, pero dos sintaxis diferente.

Interfaz La interfaz se extiende

interfaz el nombre {
  name: String;
}
interfaz de usuario de la extiende el nombre {
  Edad: Número;
}

y de tipo cruz

escriba el nombre = {
  name: String;
}
escriba el Usuario = el nombre de & {Edad: Número};

interfaz de la extiende tipo

escriba el nombre {=
  name: String;
}
interfaz del usuario extiende la {el nombre
  Edad: Número;
}

interfaz de tipo y se cruzan

Nombre de interfaz {
  name: String;
}
Tipo de usuario = {Nombre y
  edad: Número;
}

 

Diferente

tipo puede no interfaz

tipo puede declarar alias tipo básico, el tipo de unión, otros tipos de tuplas

// básicos Tipo de alias
tipo String Nombre =

@ tipo de unión
interfaz Dog {
    Wong ();
}
interfaz Cat {
    Miao ();
}

tipo de Mascota = perro | gato

tipo // definir una matriz para cada ubicación específica
del tipo PetList = [perro, la mascota]

de la declaración de tipo también se puede utilizar para obtener una instancia del tipo typeof asignación

// cuando se quiere obtener el tipo de una variable, el uso typeof
la deje div = document.createElement ( 'div');
tipo B = div typeof

otra Sao operación de

tipo StringOrNumber = cadena | Número;  
escriba el texto String = | {text: String};  
type = nameLookup el Diccionario <String, la Persona>;  
tipo devolución de llamada <T> = (datos: T) => vacío;  
tipo Par <T> = [T, T];  
escriba Coordenadas = Par <Número>;  
tipo árbol <T> = T | {left: árbol <T>, a la derecha: árbol <T>};

interfaz puede Type no

interconectarse para declarar la fusión

interfaz de usuario {
  name: String
  Edad: Número
}

interfaz del usuario {
  Sexo: String
}

/ *
la interfaz de usuario {
  name: String
  Edad: Number
  Sexo: String
}
* /

resumen
en términos generales, si no está seguro cuándo usar interfaz / tipo, interfaz puede lograr, a la interfaz de uso, Si no puede utilizar el tipo. Para más detalles ver el otro documento oficial especificación

 

Supongo que te gusta

Origin www.cnblogs.com/liuzhenwei/p/12530928.html
Recomendado
Clasificación