Another possible way of combating the problem is lowering the sensitivity of your current microphone to a point where it won't pick up your keyboard, or to use Push to Talk.
Someone mentioned before, lower the mic sensitivity. I had a similar issue on discord and that fixed it.
Just stay away from condenser mics, which tend to have higher sensitivity and pick up a lot more background noise than dynamic mics.
And if you get a dynamic mic with a cardioid pattern, it will tend to ignore background noise. Like this:
Examples of classic dynamic mics with cardioid pattern are: Shure SM57, Shure SM-7B, Sennheiser E835 S, etc.
I really like how the Sennheiser sounds like. Problem is these mics will need an audio interface too, because they have an XLR connector, so you can't connect them directly to your computer, they need something that takes analog audio in and can convert it to digital signal and send it back to your computer.
So if you want to just get a mic that works on a PC with an USB input, you could go for an Audio Technica ATR2100. I know a friend who has it and it sounds OK for the price (about 70 bucks, plug it in the PC, bam, it works). It's not amazing, but USB mics are not optimal for audio quality.
If you want to go the whole hog with an external audio interface, it depends on how much you'd be willing to spend for quality. A basic interface might set you back for 100 bucks and a decent mic for another 100. Add a pop filter and a boom arm, and the whole setup might cost somewhere under 300 bucks.
PS. You can ask me more, I know a fuckton about mics, since I studied a lot of this before I bought mine. I even talked to some sound engineer friend of another friend for some extra advice.