#Porque los traits son más potentes que las interfaces

1 messages · Page 1 of 1 (latest)

tight yoke
#

Me gustaría saber el porque son mas potentes, eso no lo acabo de entender

#

Porque los traits son más potentes que las interfaces

mild sage
#

Una interface no está limitada a su propia implementación, eso es un error, una interfaz puede usar dentro de sí misma propiedades, métodos y demás, los traits cuando generas una implementación base (es decir cuando el trait tiene un método ya declarado desde el principio) no puede llamar o usar algo fuera de su alcance (constantes o types dentro del mismo, métodos,etc.)

#

Es decir, si yo hago una implementación base de una interface no me impide usar métodos o valores definidos fuera de ella, eso llega a un error o undefined, no se(creo que existira) si alguna config del tsconfig lo limita pero en el playground de TS me dejaba

#

Eso que hace? Que el principio de encapsulacion no sea tan potente como en Rust, Rust deja que sus trait sólo usen lo que este declarado en su scope, que quieres usar una propiedad del self? Bueno puedes de diferentes maneras pero la más comun es hacer la implementación propia al tipo que quieres

tight yoke
#

Podríamos decir que son mas extensibles y reutilizables al poder implementarlas en otras struct y tipos?

mild sage
#

El tema de la reutilizacion y extensión es el mismo en ambos, nada mas que uno limita su alcance y propiedades a las que tiene conocimiento a la hora de aplicar la lógica y la otra te permite llamar propiedades no declaradas, igual es entendible que sea así por el tema del interpretado y ser solo un superset de JS

tight yoke
#

Okey entonces esa seria la única diferencia grande que hay entre los traits y interfaces o hay alguna mas a tomar en cuenta?

mild sage