javascriptnode.jsclassdiscord.jsextends

TypeError: Class extends value undefined is not a constructor or null - Node.js


I try to use Clear in my index.js, but the code doesn't work, it extends the class Clear by Moderation to get Moderation method.

Full error:

class Clear extends Moderation {
                    ^
TypeError: Class extends value undefined is not a constructor or null
    at Object.<anonymous> (C:\Users\Chigu\SoftKr\Asuha-Discord-Universal-Bot\Src\Actions\Moderation\Commands\Clear.js:5:21)
    at Module._compile (internal/modules/cjs/loader.js:1133:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10)
    at Module.load (internal/modules/cjs/loader.js:977:32)
    at Function.Module._load (internal/modules/cjs/loader.js:877:14)
    at Module.require (internal/modules/cjs/loader.js:1019:19)
    at require (internal/modules/cjs/helpers.js:77:18)
    at Object.<anonymous> (C:\Users\Chigu\SoftKr\Asuha-Discord-Universal-Bot\Src\Actions\Moderation\Moderation.js:2:17)
    at Module._compile (internal/modules/cjs/loader.js:1133:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10)

Process finished with exit code 1

Clear.js

const Discord = require("discord.js");
const {Moderation} = require("../Moderation");

class Clear extends Moderation {
    constructor(message, client) {
        super(message, client);
        this.command = "clear";
   } //methode and code
}

module.exports = {
    Clear
}

Moderation.js

const {Clear} = require("./Commands/Clear");

class Moderation {
    constructor(message, client, staff, prefix) {
        this.message = message;
        this.client = client;
        this.staff = staff;
        this.prefix = prefix;
    } //methode and code
}

module.exports = {
    Moderation,
}

Solution

  • Could it be a circular dependency issue? You're importing each class inside the other. Did you try removing this line from Moderation.js?

    const {Clear} = require("./Commands/Clear");