It usually depends on the starter I go with. I try to have as few type repetitions as possible across the party, with the possible exception of secondary typing like Flying. I generally have four different Pokemon that know Surf, Fly, Strength, and Cut individually, and if required I'll have something like Gyarados to suck it up and learn Surf and Waterfall.
As far as typing goes, I generally go with a Fire, Water, Flying, Electric, Psychic (or Ghost that can learn Psychic attacks; I always had a Haunter on my team in the Gen I games), and then pseudo-legendary and potential legendary. It varies based on the generation and starter I go with, but that's probably what I most often have, with some outliers like Weavile every now and then.
As far as typing goes, I generally go with a Fire, Water, Flying, Electric, Psychic (or Ghost that can learn Psychic attacks; I always had a Haunter on my team in the Gen I games), and then pseudo-legendary and potential legendary. It varies based on the generation and starter I go with, but that's probably what I most often have, with some outliers like Weavile every now and then.