Interfaces and Shape Types
Shape Types
Um shape type é um tipo definido com
typeque descreve a forma de um objeto (suas propriedades e métodos).Exemplo:
Classes implementando Shape Types
Uma classe pode usar
implementspara declarar que segue o contrato de um shape type.Exemplo:
Aqui, Employee garante que terá name e getDetails, conforme exigido pelo tipo Person.
Interfaces estendendo Shape Types
Interfaces podem herdar propriedades de um shape type usando
extends.Exemplo:
Nesse caso:
PersonherdanamedeNamedObject.Adiciona
getDetails.Classes que implementam
Personprecisam definir ambos.
Diferença prática
Shape types (
type): descrevem a forma de um objeto, podem ser usados para alias de tipos complexos, uniões, interseções.Interfaces: descrevem contratos e podem ser estendidas ou implementadas por classes.
Muitas vezes são intercambiáveis, mas interfaces são mais voltadas para contratos de classes, enquanto types são mais flexíveis para composições.