Should I provide typespec for each function clause?

You are defining ONE function so it should be for that function which you give the typespec.