Typescript Infer Type From Function Argument