Class Constructor Shorthand in TypeScript

I'm working on a little typescript project and I have this class with a number of fields.

class Feature {
  public name: string,
  public slug: string,
  public globalPercentage: number,
  public description: string,

  constructor(
    name: string, slug: string, globalPercentage: number, description: string,
  ) {
    this.name= string;
    this.slug= string;
    this.globalPercentage= number;
    this.description= string;
  }

...
}

I didn't like how many times I had to duplicate the variable/property names and figured there had to be a better way. Came across this post, which shows how to specify them just once, in the constructor.

Looks a little better:

  constructor(
    public name: string,
    public slug: string,
    public globalPercentage: number,
    public description: string,
  ) {}

One shortcoming, which the original also had, is the order of the arguments still matters, so it'd get unwieldy.

Someone on stackoverflow suggested using Object.assign in the construtor... it might work

Ideally I think the language would be able to do something like this:

interface FeatureProps {
    public name: string,
    public slug: string,
    public globalPercentage: number,
    public description: string,
}

class Feature {
  constructor(props: FeatureProps) { }

}

and it would be able to automatically map the fields from the argument to the right location. Looks like there's a long running issue - over six years old , which finally has a PR. So maybe this will be available soon. Perks of being a late adopter, I guess.