Рассматриваемые классы являются функциями "под капотом", и вы можете получить доступ к имени функции, вы можете получить доступ к имени во время выполнения. Однако для создания экземпляров вам не нужно знать имя класса в требуемом файле, так как вы в любом случае даете ему новый псевдоним в требуемом файле. Таким образом, единственное, что вам действительно нужно знать, - это имя файла, который требуется.
// my-class.js
module.exports = class MyClass { }
// require-class.js
const MyNewClassName = require("./my-class");
console.log(MyNewClassName.name); // => "MyClass"
const classInstance = new MyNewClassName();
console.log(classInstance); // => MyClass { }
Если вы хотите убедиться, что вы сохранили имя класса и выставили его, я рекомендую экспортировать объект как пространство имен. Если вы хотите сделать его универсальным, вы можете получить имя (имена) экспортированных ключей объекта через Object
таких помощников, как
// my-class.js
class MyClass {}
module.exports = {MyClass: MyClass};
// or module.exports = {MyClass};
// requiring file ...
const importedObject = require("./my-class");
const myInstance = new importedObject.MyClass();
const objectsInRequire = Object.keys(importedObject); // => ["MyClass"]