TypeScript Version: 2.6.2
Code
Apologies for the length - I can't really make the repro any smaller than this without it taking a fraction of the time and about half the memory. Also, note: this does not require a config.
interfaceContext<P,O>{createV(this: this &Context<P,O&{raw: true}>,attrs: P): Context<P,O>;createRC(this: this &Context<P,O&{raw: true}>,attrs: P,ref: (elem: P)=>any): Context<P,O>;simpleV(this: this &Context<P,O&{raw: true}>,attrs: P): void;simpleRC(this: this &Context<P,O&{raw: true}>,attrs: P,ref: (elem: P)=>any): void;add(this: this &Context<P,O&{text: true}>): void;raw(this: this &Context<P,O&{raw: true}>,elem: P): void;invokeC<C>(tag: Component<object,P,O>,children: (r: Context<P,O>,context: C)=>void,context: C): void;invokeAC<Aextendsobject,C>(tag: Component<A,P,O>,attrs: A,children: (r: Context<P,O>,context: C)=>void,context: C): void;}interfaceTopContext<P,O>extendsContext<P,O>{hasOption<KextendskeyofO>(key: K): this is (this &TopContext<P,{[PinK]: O[P]}>);}typeComponent<Aextendsobject,P,O>=<C>(attrs: A,r: TopContext<P,O>,children: (r: Context<P,O>,context: C)=>void,context: C)=>voidinterfaceContextWrap<P,O>{instance: Context<P,O>;}interfaceTopContextWrap<P,O>extendsContextWrap<P,O>{instance: TopContext<P,O>;}Expected behavior: It to take maybe a few seconds. Remove any one function or property out of that, and that's the compilation time I would normally expect.
Actual behavior: It takes ~15-20 seconds to check, and requires ~180-200 MB of memory in the process.
TypeScript Version: 2.6.2
Code
Apologies for the length - I can't really make the repro any smaller than this without it taking a fraction of the time and about half the memory. Also, note: this does not require a config.
Expected behavior: It to take maybe a few seconds. Remove any one function or property out of that, and that's the compilation time I would normally expect.
Actual behavior: It takes ~15-20 seconds to check, and requires ~180-200 MB of memory in the process.