One thing to think about is what you mean by “type theory” - there’s at least two meanings in common currency.
Some people use the term “type theory” to refer specifically to Per Martin-Löf’s intuitionistic type theory and (sometimes) the specific logical systems that descend from it. Or to dependent type theories that are broadly related, like the Calculus of Constructions, “book HoTT”, etc. Often, “learning type theory” will be taken to mean “learning to express mathematical objects, proofs, and programs in these systems”, or “learning the details of the metatheory of these systems”. In addition to the other books recommended here, Programming in Martin-Löf’s Theory by Nordström, Petersson, and Smith is a good (though dated and dry) reference that’s available for free online. If you want a really gentle introduction, you might also like The Little Typer (sorry for the shameless self-promotion). It also helps to pick up an implementation and start hacking - Software Foundations is great.
Others use the term “type theory” to refer to the general theoretical exploration of types and programming languages. For this, TaPL is still a great intro, as is Software Foundations. PFPL and PLFA are also worth exploring. I’d say that TaPL and PFPL really require you to have a certain amount of formal math background, at least corresponding to an undergrad discrete math class, and it’s hard to know if you’ve done the exercises right. The books based on a proof assistant make it much easier to know if you’ve understood things properly, as the computer corrects your homework.