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

11
Charlote22 16 avril 2018 à 13:14

4 réponses

Meilleure réponse

Je vois au moins un problème avec vos besoins.

  • monster.js la première ligne est const miniMonster = require("./minimonster.js");
  • minimonster.js la première ligne est const 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.

8
kigiri 16 avril 2018 à 10:23

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;
4
Dave Pile 19 sept. 2019 à 22:20

Pour moi, j'avais introduit une dépendance circulaire.

0
lwdthe1 11 déc. 2019 à 01:26

J'ai utilisé selon la ligne ci-dessous.

import Base from "./base

Et ça marche bien maintenant

-2
aviboy2006 2 déc. 2019 à 07:18