It seems like a parameter property. Essentially, by adding an access modifier (public/private/protected/readonly) to a constructor parameter, it automatically assigns that parameter to a field with the same name.
According to the documentation:
TypeScript provides a special syntax for converting a constructor parameter into a class property with identical name and value. These are known as parameter properties and can be created by prefixing a constructor argument with one of the visibility modifiers: public, private, protected, or readonly. The resulting field inherits those modifier(s).
Therefore, the following examples are equivalent:
class Foo {
private bar: string;
constructor(bar: string) {
this.bar = bar;
}
}
class Foo {
constructor(private bar: string) {}
}