private in TypeScript is a compile-time visibility rule only; it erases to nothing at runtime. The parameter property still becomes an ordinary enumerable own property, so Object.keys sees one key and the value 42 is fully accessible from inside the class.