Итак, я столкнулся с очень специфической проблемой, которую я довольно долго ломаю голову.
У меня есть два класса, которые я хочу быть одиночками и буду предоставлять услуги для моей машинописи.приложение.Они объявлены в отдельных файлах:
Config.ts
class Config {
private static _instance = new Config();
static get instance() { return this._instance }
private constructor() {
console.log('CONFIG_INIT');
}
get config() { return [] }
}
Hash.ts
import { Config } from './Config';
class Hash {
private static _instance = new Hash();
static get instance() { return this._instance }
private constructor() {
console.log('HASH_INIT');
}
test() { return Config.instance.config }
}
main.ts
import { Config } from './Config.ts';
import { Hash } from './Hash.ts';
console.log(Config.instance);
console.log(Hash.instance.test);
После выполнения этого кода я вижу, что CONFIG_INIT
выводится дважды.Также, если я установлю точку останова в конструкторе для Config
, точка останова будет достигнута только в первый раз.Кроме того, если я скопирую и вставлю класс Hash
в main.ts
, проблема исчезнет, а CONFIG_INIT
будет напечатан только один раз.
В чем может быть причина этого?Я делаю что-то явно не так?
Спасибо, Асим