У меня есть этот класс, который мы будем называть Connection
, и в этом классе есть функция с именем Disconnect
, которая возвращает класс с именем PartialConnection
. Есть несколько аргументов для обоих классов, но их не следует принимать в силу, потому что это довольно сложно для такого примера.
Это структура класса, с которой я работаю как эскиз:
const BaseConnection = require("./BaseConnection.js");
const PartialConnection = require("./PartialConnection.js");
class Connection extends BaseConnection { // BaseConnection is also a class with standard variables every type of connection should have. PartialConnection also extends from this.
constructor () {
...
}
Disconnect() {
return new PartialConnection();
}
}
Прежде чем вы все спросите, путь к ./PartialConnection.js
указан правильно, и для него задано module.exports = PartialConnection;
с PartialConnection
в качестве имени класса.
Файл PartialConnection. js
const Connection = require("./Connection");
const BaseCon = require("./BaseConnection");
class PartialConnection extends BaseCon {
constructor () {
...
}
}
module.exports = PartialConnection;
Хотя, я должен сказать, что окраска module.exports = PartialConnection
выключена, как показано здесь: https://imgur.com/a/pB9yLW5 - Я также должен сказать, что при выполнении того же функция, но для PartialConnection to Connection, он просто отлично работает. Это связано с циклическими ссылками.
Когда я создаю новый экземпляр Connection
и запускаю функцию Disconnect
, он возвращает следующую ошибку:
/Users/---/Desktop/Projects/QDB/lib/Connections/Connection.js:87
return new PartialConnection();
^
TypeError: PartialConnection is not a constructor
at Connection.Disconnect (/Users/---/Desktop/Projects/QDB/lib/Connections/Connection.js:87:16)
at process.<anonymous> (/Users/---/Desktop/Projects/QDB/lib/Connections/Connection.js:76:75)
at process.emit (events.js:219:5)
(I вычеркнул мое имя для приватности.)
Как видите, я не могу инициировать и вернуть какой-то новый класс. Раньше это работало в течение нескольких недель go, но теперь это не так.
Версия;
$ node -v
v13.3.0
$ npm -v
6.14.2
И для пояснения - я бы хотел, чтобы это почти буквально прекратить текущий класс и вернуть новый класс, который не позволяет вам вносить изменения в класс Connection
.
Если у вас есть какие-либо решения или вы можете чем-либо помочь, это очень ценится!