You can't be great at everything, but there's value both in general knowledge and specific knowledge. Try and know a little about most things, and a lot about a few areas that are most valuable to you -- either because you enjoy them, or because you get paid well because of it.
I do both native mobile and full-stack web development, and I consider myself good at both, but obviously someone who has been living and breathing iOS development for the last ten years should be better at iOS development than I am, and someone focuses intensely on front-end development may know more about CSS FlexBox and ServiceWorkers and Angular / React than I do. That's ok.
Incidentally, that's true of more than technology -- having generalized knowledge of business and specific knowledge of a few industries is also valuable.