protected Indexer addBaseIndexer(ref ExtClass baseObjectClass) { string[] baseObjectClassIndexerDocs = this.processor.GenerateJsDocs ? new string[] { "Any other property or method.", "@see https://github.com/microsoft/TypeScript/issues/3755" } : null; Indexer baseIndexer = new Indexer( "others", new List <string>() { "string" }, new List <string>() { "any" }, baseObjectClassIndexerDocs, baseObjectClass.Name.FullName, true ); baseObjectClass.AddMemberIndexer(baseIndexer); return(baseIndexer); }
protected void generateEventsInterfacesBases() { // Complete and add base Events interface: ExtClass baseEventsInterface = this.addBaseInterface( SpecialsGenerator.BASE_EVENTS_INTERFACE_NAME, "Base events interface.", ClassType.CLASS_EVENTS ); string[] baseObjectClassIndexerDocs = this.processor.GenerateJsDocs ? new string[] { "Any event method or event config.", } : null; Indexer baseIndexer = new Indexer( "events", new List <string>() { "string" }, new List <string>() { SpecialsGenerator.BASE_EVENTS_CFG_INTERFACE_NAME, "Function" }, baseObjectClassIndexerDocs, baseEventsInterface.Name.FullName, true ); baseEventsInterface.AddMemberIndexer(baseIndexer); // Complete and add base EventConfig interface: ExtClass baseEventCfgInterface = this.addBaseInterface( SpecialsGenerator.BASE_EVENTS_CFG_INTERFACE_NAME, "Event config interface.", ClassType.CLASS_EVENTS ); Configuration fnCfg = new Configuration( "fn", new List <string>() { "Function" }, new string[] { "Event handler.", "@required" }, baseEventCfgInterface.Name.FullName, true ); //fnCfg.Required = true; baseEventCfgInterface.AddMemberConfiguration(fnCfg); baseEventCfgInterface.AddMemberConfiguration(new Configuration( "scope", new List <string>() { "any" }, new string[] { "Event handler `this` context value." }, baseEventCfgInterface.Name.FullName, true )); baseEventCfgInterface.AddMemberConfiguration(new Configuration( "buffer", new List <string>() { "number" }, new string[] { "Handler is invoked only once every `n` miliseconds in `buffer`, ", "regardless of how many times user fire it." }, baseEventCfgInterface.Name.FullName, true )); baseEventCfgInterface.AddMemberConfiguration(new Configuration( "single", new List <string>() { "boolean" }, new string[] { "Handler is invoked only once." }, baseEventCfgInterface.Name.FullName, true )); }