はい、これまでに死ぬように求められましたが、noneoftheseが私のために働いています。「コンストラクタではありませんが、タイプチェックアウト」
Config
コンストラクタを呼び出すときにTypeError: Config is not a constructor
が表示されます。他のSOの質問とMDNを見て、このエラーの通常の原因は、コンストラクタをシャドウするか、呼び出し不可能な型を呼び出すことですが、私のプロジェクトでこれらのチェックアウトもありません。
これは呼び出しです:それはそれはFunction
だことが明らかになったので、それが定義されているほぼ確実に同じ機能です呼び出す前に
Config
の種類のログ
var fs = require("fs");
exports.Config = file => {
var json;
if (fs.existsSync(file) && !fs.lstatSync(file).isDirectory()) {
json = JSON.parse(fs.readFileSync(file));
}
else {
throw new ReferenceError("File doesn't exist: can't load config");
}
this.has = key => {
return json.hasOwnProperty(key);
};
this.get = key => {
return json[key] || null;
};
this.set = (key, value, write) => {
json[key] = value;
if (write) {
fs.writeFileSync(file, JSON.stringify(json));
}
};
};
:./config.js
で
var Server = require("./server.js").Server;
var Config = require("./config.js").Config;
new Server(new Config("app/config.json")).run();
config.js
。だから、Nodeはそれがコンストラクタではないと私に伝えているのはなぜですか?
[すべての関数がコンストラクタわけではありませんが...](http://stackoverflow.com/q/34361379/1048572) – Bergi