Typescript Dynamically Create Object From Interface Vs Abstract