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

208
Views
Comprobar si una clase es una superclase de otra clase

Tengo una matriz de clases (no objetos). Solo necesito agregar nuevas clases a la matriz solo si no hay una subclase. Pero este código no funciona, estos no son objetos iniciados.

 import {A} from './a'; import {B} from './b'; import {otherList} from './list'; export const getList =()=>{ const list = [A,B]; otherList.forEach((element) => { if (list.findIndex((item) => element instanceof item) === -1) { list.push(element); } }); return list; }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

La herencia de JavaScript funciona al crear el prototipo a partir del constructor de la superclase.

Esto significa que si tienes algo como esto:

 class A { } class B extends A { } class C extends B { }

entonces puede buscar una subclase con .prototype :

 console.log(A.prototype instanceof Object); console.log(B.prototype instanceof Object); console.log(B.prototype instanceof A); console.log(C.prototype instanceof A); console.log(C.prototype instanceof B); console.log(C.prototype instanceof C); // false

Todos estos registros son true excepto el último.

En base a eso, puede crear esta función para verificar si una clase es una subclase o la misma clase que la otra:

 declare type Class = new (...args: any[]) => any; function isSubClassOf(cls: Class, superCls: Class): boolean { return cls === superCls || cls.prototype instanceof superCls; }

Todos estos registros son true excepto el último:

 console.log(isSubClassOf(C, A)); console.log(isSubClassOf(C, B)); console.log(isSubClassOf(C, C)); console.log(isSubClassOf(B, A)); console.log(isSubClassOf(A, A)); console.log(isSubClassOf(A, C)); // false

En su caso, puede usar la función de esta manera:

 if (list.findIndex((item) => isSubClassOf(element, item)) === -1) { list.push(element); }
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!