If you want to describe tangent bundles, the appropriate language is classifying spaces.
A vector bundle $\mathbb R^k \to E \to B$ over a space $B$ is described by a homotopy-class of map
$$B \to Gr_{\infty,k}$$
where $Gr_{\infty,k}$ is the space of all $k$-dimensional vector subspaces of $\oplus_\infty \mathbb R$.
So for example, the tangent bundle of $S^2$ is a $2$-dimensional vector bundle over $S^2$, so described by a map
$$S^2 \to Gr_{\infty,2}$$
$Gr_{\infty,2}$ as a space would be called $B(O_2)$, the classifying space of the Lie group $O_2$, meaning that it is the quotient of a contractible space by a free action of $O_2$ (think of the associated Stiefel space). So an element of $\pi_2 Gr_{\infty,2}$ is equivalent (via the homotopy long exact sequence) to an element of $\pi_1 O_2$, which is isomorphic to $\mathbb Z$.
i.e. 2-dimensional vector bundles over $S^2$ are described by an integer.
There's another way to see the above construction. Decompose $S^2$ into the union of two discs, the upper and lower hemisphere. Via pull-backs this decomposes $TS^2$ into (up to an isomorphism) $D_u \times \mathbb R^2$ and $D_l \times \mathbb R^2$ where $D_u$ and $D_l$ are the upper and lower hemi-spheres respectively. $\partial D_u = \partial D_l = S^1$. So there's a gluing map construction
$$ TS^2 = (D_u \times \mathbb R^2) \cup (D_l \times \mathbb R^2) $$
There's is a map describing how point on $\partial D_l \times \mathbb R^2$ have to be glued to points on $\partial D_u \times \mathbb R^2$ and it has the form
$$(z,v) \longmapsto (z,f_z(v))$$
where
$$f : S^1 \to O_2$$
The homotopy-class of this map is again described by an integer. These are the same two integers. A fun calculation shows you it's two, the Euler characteristic.
The above story is worked-out in more detail in Steenrod's book on fibre bundles. Also Milnor and Stasheff.
By-the-way, many people have trouble initially thinking about tangent bundles. They're fairly delicate objects.
This is easy if you use the definition of the tangent space $T_xM$ as the set of equivalence classes of smooth curves in $M$ passing through $x$.
Suppose you have a smooth curve $\gamma : I \to M$, where $I$ is an open interval in $\mathbb{R}$ containing $0$, and suppose that $\gamma(0) = x \in M$. Then by definition the equivalence class $[\gamma]$ is an element of the tangent space $T_xM$.
Now suppose we have a smooth map $\phi : M \to N$. Then we can consider the composite map $\phi \circ \gamma : I \to N$. This composite map is a smooth curve in $N$, and $\phi \circ \gamma(0) = \phi(x)$, so the equivalence class $[\phi\circ\gamma]$ is an element of the tangent space $T_{\phi(x)}N$.
Now, I think that this is not really the best definition of the tangent space for theoretical purposes (in particular it is not clear how to add tangent vectors) but it is equivalent to all of the other definitions, and it captures the intuition very well. Chapter 3 of John Lee's book Introduction to Smooth Manifolds discusses the different definitions of the tangent space in a very clear manner, so I would recommend that you read that.
Best Answer
A tangent space should be thought of as a something straight (a Euclidean space) that is locally (near the point) looks like your space, therefore tangent spaces at a point $x$ of your manifold $X$ and its open subset containing $x$ should be the same (because a tangent space is a local object, i.e. it depends only on local data).
Then you can take a chart $U$ containing $x$. By definition of a chart, you have a diffeomorphism between $\mathbb{R}^n$ and $U$ (which takes a point $y$ to $x$). Moreover, a tangent space should be something that is invariant under diffeomorphisms and it is functoral, namely if you have a tangent vector at $y$, then you should be able to push it and obtain a tangent vector at $x$. This procedure is called a differential, i.e. a differential is a map on tangent spaces. Then the authors say that to describe a tangent space at $x$ you should take a chart and apply the differential to your map and you obtain a desirable tangent space. Of course, a tangent space at $y$ can be canonically identified with $\mathbb{R}^n$, so all you need is to compute a differential.