use the constructor of a class's instance to construct a new instance.

this is useful for avoiding pollution of code with new keyword along with some wonky placement of braces to make your code work.

class K {
value: number

constructor(value1: number, value2: number) {
this.value = value1 + value2
}
}

const a = new K(1, 1)
const b = constructFrom(a, 2, 2) // equivalent to `const b = new K(2, 2)`

// vanilla way of constructing `const c = new K(3, 3)` using `a`
const c = new (Object.getPrototypeOf(a).constructor)(3, 3)

a satisfies K
b satisfies K
c satisfies K