Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1.5K
Views
Los tipos tienen declaraciones separadas de una propiedad privada

Estoy aprendiendo Angular (que está escrito en TypeScript) y me topé con este error:

La clase 'SnackbarService' extiende incorrectamente la clase base 'MatSnackBar'. Los tipos tienen declaraciones separadas de una propiedad privada '_overlay'.

al intentar extender MatSnackBar desde @angular/material .

Este es mi código:

 import { MatSnackBar } from '@angular/material'; import { Overlay } from '@angular/cdk/overlay'; import { LiveAnnouncer } from '@angular/cdk/a11y'; ... export class SnackbarService extends MatSnackBar { constructor( private _overlay: Overlay, private _liveAnnouncer: LiveAnnouncer, ... ) { super(_overlay, _liveAnnouncer, ...); } } }

Cualquier ayuda con cualquier tipo de explicación sobre por qué sucede esto sería realmente apreciada.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Esto sucede porque al declarar que el constructor toma un parámetro private _overlay , ha creado su propio _overlay , pero eso ya está definido en la clase base MatSnackBar .

Elimina la parte private de la declaración y hereda de la clase base. Haga lo mismo con los demás parámetros del constructor.

 export class SnackbarService extends MatSnackBar{ constructor( _overlay: Overlay, _liveAnnouncer: LiveAnnouncer, ... ) { super(_overlay, _liveAnnouncer, ...); } } }

Todavía puedes acceder a ellos a través de this.

over 4 years ago · Santiago Trujillo Report

0

Esto también sucede en los casos en que la versión de las dependencias no coincide. [Desde la perspectiva mecanografiada]

Por ejemplo, si su aplicación A usa la versión 1.0 de un paquete B y la versión 1.0 del paquete C. Sin embargo, el paquete C usa una versión diferente del paquete B , digamos 2.0.

Ahora tiene dos clases diferentes con el mismo nombre en el proceso de compilación general. Para resolverlo, debe actualizar el paquete C o el paquete B, para tener la misma versión en la aplicación.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!