This article was originally published on my website at https://matthewtole.com/articles/til-typescript-class-shorthand/
If you are like me and write Typescript code, you're probably very familiar with how to write classes. Here's an example of a class that you might write.
class Player { private name: string; private age: number; constructor(name: string, age: number) { this.name = name; this.age = age; } public isOld(): boolean { return this.age >= 65; } }
At work today I stumbled across some code that I didn't quite understand, but after running some experiments on the Typescript playground and finding a random StackOverflow article talking about it, I realized I have discovered a shorthand way of declaring class properties in Typescript. The same Player class can be written like this.
class Player { constructor(private name: string, private age: number) { // Don't need anything here! } public isOld(): boolean { return this.age >= 65; } }
By adding the scope of the properties to the constructor, it automatically creates properties on the class with the same name!
I couldn't find anything about this in the Typescript documentation, or many people using this, but I thought it was pretty cool and wanted to share.
Top comments (1)
Hey, same can be done with readonly/public/protected : See docs here