TypeScript 3.8 gives private fields a runtime contract
engineeringtypescriptprivacymodulescompilationECMAScript private fields protect state after TypeScript has emitted JavaScript. Their inheritance behaviour and WeakMap-based output distinguish them from the existing private modifier.