typescript type based on enum value