• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

254
Views
Llame a `super` en el método de instancia de JavaScript

Estoy intentando llamar a super en un método de instancia de una clase de estilo ES6, y obtengo errores de compilación de paquete/babel.

 @parcel/transformer-babel: 'super' is only allowed in object methods and classes. (1291:21)

Mi código efectivamente se ve así

 class BaseClass { constructor(params) { this.params = params; } matches(other) { // do some matching logic return true; // or false } } class MyClass extends BaseClass { matches(other) { let match = super.matches(other); // do some additional matching logic return true; // or false } }

El error es cuando llamo a super.matches(other) en MyClass .

Toda la documentación que puedo encontrar en super habla sobre su uso en constructor , lo cual está bien, y su uso en métodos static , pero no he encontrado ninguna mención de métodos de instancia.

¿Esto simplemente no funciona en JS, lo estoy haciendo mal o tiene algo que ver con el transformador o paquete de babel?

almost 3 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Parcel v2 admite la transpilación de sintaxis de clase es6 de forma predeterminada mediante swc . Un "gotcha" es que si detecta un archivo .babelrc / babel.config.json en su proyecto, cambiará a transpilar usando babel, y luego depende de usted asegurarse de que la configuración que proporcionó transpilará las clases.

Según los documentos :

si solo usa @babel/preset-env , @babel/preset-typescript y @babel/preset-react , es posible que Babel ya no sea necesario. Parcel admite todas estas funciones automáticamente sin una configuración de Babel, y el transpilador predeterminado de Parcel es mucho más rápido que Babel.

Entonces, lo primero que intentaría es eliminar cualquier .babelrc / babel.config.json en su proyecto para que pueda probarlo con swc . Si eso no funciona (tal vez porque está haciendo otra cosa que swc no admite), asegúrese de que @babel/preset-env esté incluido en su configuración de babel.

almost 3 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error