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

355
Views
Texto mecanografiado: ¿puede usar las propiedades del constructor dentro de las propiedades privadas de una clase?

¿Es una mala práctica usar las propiedades de un constructor de una clase dentro de una variable? Intenté esto y me sorprendió const name = new Name(time, course); funcionó, aunque supongo que tiene sentido ya que una instancia de Eng necesita que se creen esas propiedades del constructor, entonces estarían disponibles para usar en otro lugar.

 import { Name } from './Name' class Eng { private _name = new Name(time, course); private constructor(time: String, course: String) {} method1(){ let results = name.convertTrials(); return results; } }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Su ejemplo de código en realidad tiene errores de tipo:

 class Eng { private _name = new Name(time, course); // Cannot find name 'time'.(2304) // Cannot find name 'course'.(2304) private constructor(time: string, course: string) {} }

el time y el course no están en el alcance en lo que respecta al texto mecanografiado. Si desea utilizar parámetros de constructor, deben estar en el cuerpo del constructor.


Lo que puede confundirlo es que, cuando se compila, el código funciona bien. Esto se debe a que las propiedades de clase no estáticas se mueven al constructor por usted, ya que es donde deberían estar en JS simple.

Entonces su clase compilada se ve así:

 // js class Eng { constructor(time, course) { this._name = new Name(time, course); } }

Que debería funcionar sin problema.

Pero es un problema para Typescript, que cree que los argumentos del constructor no están dentro del alcance fuera del constructor.


Si no necesitas los argumentos:

 class Foo { constructor() {} } class UseFoo { private foo = new Foo() private constructor() {} }

Entonces no hay nada malo con su enfoque.

Ver Parque Infantil

about 4 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 Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!