Parts of the answer to your question vary wildly based on your university, and some are universal.
For the first kind, some universities/departments exclusively offer TAships to graduate students. In my university, the minimum requirement to apply in the CS department is to have completed the course.
As for the second kind, there's a kind of truism in teaching: to teach someone, you only need know more than them. So, really you just need to know what's being taught in that course well. Sure some curious students might ask beyond that, and if you don't know the answers to more advanced questions, that's perfectly OK - you're not a prof, you're there to help them understand the material in that course. Tell them what you know then direct them to where they can learn more.
Of course knowledge isn't enough to be a good TA, teaching is it's whole other science. To be able to explain things in basic terms to novices in a subject is an extremely underrated and rare skill. If you're gonna be a TA, you should work on this and things of this nature.
Overall, don't fret about if you have sufficient knowledge to be a TA - if they accept you, you can rest assured they won't hire someone who doesn't have the sufficient mastery of the subject. That only happens when they're forced to give grad students TA positions :)