No, I really didn't know much about type theory.
(And I don't think I can study that at my university actually).
I had an intuition of how parametric polymorphism worked because of my experience with Haskell, but I didn't know a type inference algorithm works, how that integrates with checking against an assumed type (and the whole unification shebang that comes with it); how universal quantification plays into that, the amount of pit falls that come with certain design decisions(impredicativity etc.).
I personally gain the most insight into something when I'm trying to think about it from first principles, so I avoided extensive research about type theory beforehand so that I wasn't "tainted" by preconceived ideas :-).
Of course I got stuck quite a few times. I would then look how Haskell does something and trying to understand why and how etc.