Quick Question: Should I use TEnumAsByte or explicit enum name as type?

When I create a function that accepts an enum as input, which declaration should I use?

void MyFunction(TEnumAsByte<EMyEnum> enumVal);

or

void MyFunction(EMyEnum enumVal);

Both seem to work just fine.

When defining a class member (UPROPERTY), it runs into a comilation error when using a naked(?) pointer to an Enum Value, so I just went ahead and used TEnumAsByte everywhere.