Update
I was reading the comments to the question, and found that @Kuba had already provided the following answer. I think it's the cleanest solution, so it deserves to be an answer, but please credit him with the idea.
Another idea is to use PatternSequence
:
ClearAll[f]
f[PatternSequence[a_,b_,c_]?NumericQ] := a+b+c
Examples:
f[1,2,3]
f["a",2,3]
6
f["a", 2, 3]
Generalization
We can generalize the idea behind this answer as follows:
SequencedPattern[a_] := PatternSequence[##]?a&
Then, we can use SequencedPattern
as follows:
f[SequencedPattern[NumericQ][a_, b_, c_]] := a + b + c
The previous examples still work:
f[1, 2, 3]
f["a", 2, 3]
6
f["a", 2, 3]
Here is another example using SequencedPattern
:
f[SequencedPattern[PrimeQ][a_, b_, c_], d_] := (a+b+c)/d
f[2,3,4,10]
f[2,3,7,11]
f[2, 3, 4, 10]
12/11