TypeScript offers special syntax for turning a constructor parameter into a class property with the same name and value. These are called parameter properties
Doesn't this violate their own non-goal #6, "Provide additional runtime functionality", since it emits a this.x = x
run-time side effect in the body that isn't explicitly written out in the source code?