web-dev-qa-db-ja.com

「クラスは値を拡張します#<Object>はコンストラクタまたはnullではありません」

私の投稿を読んでくれてありがとう、私は私のコードでこのエラーを受け取ります: "Class extends value#is a constructor or null"これが私のコードです。クラスをエクスポート/インポートしようとしています.

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;

助けてくれてありがとう、

良い一日を過ごしてください

8
Charlote22

少なくとも1つの問題があります。

  • _monster.js_最初の行はconst miniMonster = require("./minimonster.js");です
  • _minimonster.js_最初の行はconst monster = require("./monster.js");です

これは問題です。両方のファイルを同時に評価することはできません。 _monster.js_のminimonsterは必要ありません

これで問題が解決する場合があります。

5
kigiri

このエラーメッセージが表示されるのは、module.exports 違う。例えば。

publicclass.js

class PublicClass {
.....
}

module.exports.PublicClass = PublicClass;

の代わりに

module.exports = PublicClass;
2
Dave Pile