I have a class below `Time`. I'm curious if there's a way to define the 3 properties different syntactically preferably in a way where I didn't have to define the properties above.

```
export class Time {
  parsed: ParsedTime
  string: string
  minutes: number
  constructor (public time: TimeConstructable) {
    this.parsed = parseResolve(this.time); 
    this.string = toString(this.parsed)
    this.minutes = inMinutes(this.parsed);
  }
}

```

I've tried this but it doesn't work because these run before initialization and don't have access to `this.time`

```
export class Time {
  constructor (public time: TimeConstructable) {}

  parsed = parseResolve(this.time); 
  string = toString(this.parsed)
  minutes = inMinutes(this.parsed);
}

```

Getters are nice and have a clean syntax but the values are calculated everytime the property is retrieved, and not cached as in the first example:

```
export class Time {
  constructor (public time: TimeConstructable) {}

  get parsed () {
    return parseResolve(this.time); 
  }

  get string () {
    return toString(this.parsed)
  }

  get minutes () {
    return inMinutes(this.parsed);
  }
}

```

This is a bit unorthodox but is an interesting syntax, downside is it allows for a complicated and unintentional constructor typing.

```
export class Time {
  constructor (
    public time: TimeConstructable,
    public parsed = parseResolve(time),
    public string = toString(parsed),
    public minutes = inMinutes(parsed)
  ) {}
}

```

Any others?