Earlier quoted context omitted.
Slow compile times are very much a problem caused by TypeScript.
My 3 year old laptop has no problems with TypeScript (neither Angular nor React), and I am a rather impatient guy when it comes to computers. I'm honestly wondering: What are people doing to end up in a position where TypeScript compile times are a problem?
Edit for the curious, here's the monster type that caused such pathological build times...
type ImmutablePrimitive = undefined | null | boolean | string | number | Function;
export type Immutable =
T extends ImmutablePrimitive ? T :
T extends [infer U] ? readonly [Immutable] :
T extends [infer U, infer V] ? readonly [Immutable, Immutable] :
T extends [infer U, infer V, infer X] ? readonly [Immutable, Immutable, Immutable] :
T extends [infer U, infer V, infer X, infer Y] ? readonly [Immutable, Immutable, Immutable, Immutable] :
T extends [infer U, infer V, infer X, infer Y, infer Z] ? readonly [Immutable, Immutable, Immutable, Immutable, Immutable] :
T extends readonly [infer U] ? readonly [Immutable] :
T extends readonly [infer U, infer V] ? readonly [Immutable, Immutable] :
T extends readonly [infer U, infer V, infer X] ? readonly [Immutable, Immutable, Immutable] :
T extends readonly [infer U, infer V, infer X, infer Y] ? readonly [Immutable, Immutable, Immutable, Immutable] :
T extends readonly [infer U, infer V, infer X, infer Y, infer Z] ? readonly [Immutable, Immutable, Immutable, Immutable, Immutable] :
T extends Array ? ImmutableArray :
T extends ReadonlyArray ? ImmutableArray :
T extends Map ? ImmutableMap :
T extends ReadonlyMap ? ImmutableMap :
T extends Set ? ImmutableSet :
T extends ReadonlySet ? ImmutableSet :
ImmutableObject;
type ImmutableArray = ReadonlyArray>;
type ImmutableMap = ReadonlyMap, Immutable>;
type ImmutableSet = ReadonlySet>;
type ImmutableObject = { readonly [K in keyof T]: Immutable };