Typescript ::单独文件中的Singleton类被实例化多次

时间:2019-05-09 23:43:46

标签: typescript singleton

所以我遇到了一个非常特殊的问题,我已经花了很长时间了。

我有两个要成为单例的类,可以为我的打字稿应用程序提供服务。它们在单独的文件中声明:

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仅打印了一次。

这可能是什么原因?我在这里做错了什么吗?

谢谢, 阿西姆

0 个答案:

没有答案