Type Inference Typescript