Hola, ¿Existe alguna diferencia entre declarar las variables globales privadas o definirlas como parámetros privados del método construct...

ANDRES CAMILO CRUZ VILLAMIL

ANDRES CAMILO CRUZ VILLAMIL

Pregunta
studenthace 5 años

Hola,

¿Existe alguna diferencia entre declarar las variables globales privadas o definirlas como parámetros privados del método constructor? Por ejemplo, en la clase ProductEditComponent, se definieron los parámetros privados del constructor formBuilder, productsService, router y activeRoute, los hubiera podido manejar como variables privadas de la clase?, Existe alguna razón para definirlos allí? Esto es propio de Angular?, O de TypeScript? O incluso de JavaScript?. Muchas gracias.

1 respuestas
para escribir tu comentario
    Nicolas Molina

    Nicolas Molina

    teacherhace 5 años

    Hola, esto se debe a una propiedad de TypeScript, si hubieras podido tener esas variables como privadas pero luego te tocaría hacer la asignación, ejemplo:

    class MyClass { private http: HttpClient; constructor(http: HttpClient) { this.http = http; } }

    Para no hacerlo tan largo Typescript te da forma en que el mismo constructor defines el acceso private o public y ya queda como variable de la clase y hace la asignación.

    class MyClass { constructor(private http: HttpClient) {} }
Curso de Angular [Empieza Gratis]

Curso de Angular [Empieza Gratis]

Entiende los conceptos fundamentales de Angular 8. Conoce la arquitectura de este Framework para que programes aplicaciones web con sus mejores prácticas. Conecta tus aplicaciones con una API para obtener datos de un sistema de Backend. Crea una tienda en línea y publícala en Internet con Firebase.

Curso de Angular [Empieza Gratis]
Curso de Angular [Empieza Gratis]

Curso de Angular [Empieza Gratis]

Entiende los conceptos fundamentales de Angular 8. Conoce la arquitectura de este Framework para que programes aplicaciones web con sus mejores prácticas. Conecta tus aplicaciones con una API para obtener datos de un sistema de Backend. Crea una tienda en línea y publícala en Internet con Firebase.