TS4075

Parameter 'event' of method from exported interface has or is using private name 'Strategy'.

Broken Code ❌

export interface Strategy<SpecificConfig extends StrategyConfig> {
  on(event: Strategy.TOPIC.TRADER_DELETE, listener: () => void): this;
}
 
export abstract class Strategy<SpecificConfig extends StrategyConfig> extends EventEmitter {
  static readonly TOPIC = {
    TRADER_DELETE: 'TRADER_DELETE',
  };
 
  // ...
}

Fixed Code ✔️

enum TOPIC {
  TRADER_DELETE = 'TRADER_DELETE',
}
 
export interface Strategy<SpecificConfig extends StrategyConfig> {
  on(event: TOPIC.TRADER_DELETE, listener: () => void): this;
}
 
export abstract class Strategy<SpecificConfig extends StrategyConfig> extends EventEmitter {
  static readonly TOPIC = TOPIC;
 
  // ...
}