Класс Typescript :: Singleton в отдельных файлах создается несколько раз - PullRequest
0 голосов
/ 10 мая 2019

Итак, я столкнулся с очень специфической проблемой, которую я довольно долго ломаю голову.

У меня есть два класса, которые я хочу быть одиночками и буду предоставлять услуги для моей машинописи.приложение.Они объявлены в отдельных файлах:

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 будет напечатан только один раз.

В чем может быть причина этого?Я делаю что-то явно не так?

Спасибо, Асим

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...