Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

216
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda