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

142
Views
How to write JavaScript constructors without strong typing

In strongly typed languages, like C# or Java, I can distinguish constructor signatures by argument types.

class Cars {

    Cars(string x, string y) {};
    Cars(string x, int y) {};

}

But without strong typing in JavaScript, I can only do this, which obviously will not work:

class Cars {

    Cars(x, y) {};
    Cars(x, y) {};

}

Am I limited to only the number of constructor arguments to distinguish them? Is there some way to create JS constructors that have the same number of args, but of different "types"?

How do I make constructors that know that it should be looking for an string y in the first constructor, but int y in the second?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

The only way to do this with JavaScript itself would be to use typeof checks inside the constructor body.

class Cars {
  constructor(x, y) {
    if (typeof x === 'string' && typeof y === 'string') {
      // implementation
    } else if (typeof x === 'string' && typeof y === 'number') {
      // implementation
    }
  }
}

If you were to use TypeScript, you could make the signatures more explicit and understood by good IDEs (for autocompletion and such) - but you'd still have to write out the tests to differentiate between different parameters inside the constructor itself for the emitted code. Not much of an improvement.

In JS and TS, there is only one constructor for a class - you can't have multiple depending on the types of arguments, you can only modify the one constructor to suit your purposes.

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!