Merci d'avoir lu mon article, j'obtiens cette erreur sur mon code: "La classe étend la valeur # n'est pas un constructeur ou null" Voici mon code, j'essaie d'exporter / importer des classes.
Monster.js:
const miniMonster = require("./minimonster.js");
class monster {
constructor(options = { name }, health) {
this.options = options;
this.health = 100;
this.heal = () => {
return (this.health += 10);
};
}
}
let bigMonster = new monster("Godzilla");
console.log(bigMonster);
console.log(bigMonster.heal());
let mini = new miniMonster("Demon");
console.log(mini);
console.log(mini.heal());
module.exports = monster;
Minimonster.js:
const monster = require("./monster.js");
class miniMonster extends monster {
constructor(options) {
super(options);
this.health = 50;
this.heal = () => {
return (this.health += 5);
};
}
}
let miniM = new miniMonster("Jon");
console.log(miniM);
module.exports = miniMonster;
Merci pour toute aide apportée,
Bonne journée
4 réponses
Je vois au moins un problème avec vos besoins.
monster.js
la première ligne estconst miniMonster = require("./minimonster.js");
minimonster.js
la première ligne estconst monster = require("./monster.js");
C'est un problème, vous ne pouvez pas faire évaluer les deux fichiers en même temps. Je n'aurais pas besoin de minimonster
de monster.js
Cela peut résoudre votre problème.
Lorsque je reçois ce message d'erreur, c'est parce que j'ai mal fait module.exports
. par exemple.
publicclass.js
class PublicClass {
.....
}
module.exports.PublicClass = PublicClass;
Au lieu de
module.exports = PublicClass;
Pour moi, j'avais introduit une dépendance circulaire.
J'ai utilisé selon la ligne ci-dessous.
import Base from "./base
Et ça marche bien maintenant
Questions connexes
De nouvelles questions
javascript
Pour des questions concernant la programmation dans ECMAScript (JavaScript / JS) et ses divers dialectes / implémentations (hors ActionScript). Veuillez inclure toutes les balises pertinentes dans votre question; par exemple, [node.js], [jquery], [json], etc.