[proofplan]
We first average a Hermitian [inner product](/page/Inner%20Product) over the compact group $T$, so the representation may be treated as unitary without changing its weight spaces. Since $T$ is abelian, the operators $\rho(t)$ form a commuting family of unitary, hence normal, operators. Simultaneous diagonalization gives a basis of common eigenvectors. The corresponding eigenvalue functions are then checked from the representation law and continuity of $\rho$ to be continuous characters, and grouping common eigenvectors with the same character gives the stated finite [direct sum](/page/Direct%20Sum).
[/proofplan]
[step:Make the representation unitary by averaging the inner product]
Choose a Hermitian inner product $(\cdot,\cdot)_0$ on $V$, linear in the first variable and conjugate-linear in the second. Let $\mu_T$ denote the normalized right-invariant Haar probability measure on $T$. Since $T$ is a compact Lie group and $\rho:T\to GL(V)$ is a continuous finite-dimensional complex representation, [citetheorem:9712] applied to $(\cdot,\cdot)_0$ gives the Hermitian inner product $(\cdot,\cdot)_T$ defined by
\begin{align*}
(v,w)_T:=\int_T (\rho(g)v,\rho(g)w)_0\,d\mu_T(g)
\end{align*}
for $v,w\in V$, and this inner product satisfies
\begin{align*}
(\rho(h)v,\rho(h)w)_T=(v,w)_T
\end{align*}
for every $h\in T$ and every $v,w\in V$.
Thus each operator $\rho(h):V\to V$ is unitary with respect to $(\cdot,\cdot)_T$. This change of inner product does not change the linear maps $\rho(h)$, so it does not change any subspace
\begin{align*}
V_\lambda=\{v\in V:\rho(t)v=\lambda(t)v\text{ for every }t\in T\}.
\end{align*}
[/step]
[step:Simultaneously diagonalize the commuting unitary operators]
Let $n:=\dim_{\mathbb C}V$. If $n=0$, then $V=\{0\}$ and every weight space is $\{0\}$, so the result follows. Assume $n\ge 1$.
Choose an [orthonormal basis](/page/Orthonormal%20Basis) $\mathcal B=(b_1,\dots,b_n)$ of $V$ with respect to $(\cdot,\cdot)_T$. Let $(\varepsilon_1,\dots,\varepsilon_n)$ denote the standard basis of $\mathbb C^n$. Define the unitary coordinate isomorphism
\begin{align*}
U_{\mathcal B}:\mathbb C^n \to V,\qquad \varepsilon_i \mapsto b_i \text{ for } 1\le i\le n
\end{align*}
and define
\begin{align*}
U(n):=\{U\in GL(\mathbb C^n):U \text{ is unitary with respect to the standard Hermitian inner product}\}.
\end{align*}
Then define
\begin{align*}
A:=\{U_{\mathcal B}^{-1}\rho(t)U_{\mathcal B}:t\in T\}\le U(n).
\end{align*}
Because $T$ is abelian and $\rho$ is a [group homomorphism](/page/Group%20Homomorphism), $A$ is an abelian subgroup of $U(n)$.
By [citetheorem:9717] applied to the abelian subgroup $A\le U(n)$, there is an orthonormal basis $(f_1,\dots,f_n)$ of $\mathbb C^n$ such that, for every $t\in T$ and every $1\le i\le n$, the line $\mathbb C f_i$ is preserved by $U_{\mathcal B}^{-1}\rho(t)U_{\mathcal B}$. Define $e_i:=U_{\mathcal B}f_i\in V$ for $1\le i\le n$. Since $U_{\mathcal B}$ is unitary, $(e_1,\dots,e_n)$ is an orthonormal basis of $V$, and each line $\mathbb C e_i$ is preserved by $\rho(t)$ for every $t\in T$. Hence for each $i$ there is a function $\alpha_i:T\to S^1$ such that
\begin{align*}
\rho(t)e_i=\alpha_i(t)e_i
\end{align*}
for every $t\in T$.
[guided]
The point of this step is to handle the full family $\{\rho(t):t\in T\}$ at once, even though $T$ is usually infinite. By the preceding Haar-averaging step, the Hermitian inner product $(\cdot,\cdot)_T$ on $V$ satisfies $(\rho(h)v,\rho(h)w)_T=(v,w)_T$ for every $h\in T$ and every $v,w\in V$. Therefore every $\rho(t)$ is unitary with respect to this averaged inner product. Since $T$ is abelian, for any $s,t\in T$ we have
\begin{align*}
\rho(s)\rho(t)=\rho(st)=\rho(ts)=\rho(t)\rho(s).
\end{align*}
Thus the operators $\rho(t)$ form a commuting family of unitary operators.
To apply the simultaneous diagonalization theorem in its standard matrix form, choose an orthonormal basis $\mathcal B=(b_1,\dots,b_n)$ of $V$ and define the unitary coordinate isomorphism
\begin{align*}
U_{\mathcal B}:\mathbb C^n\to V
\end{align*}
by mapping the standard basis of $\mathbb C^n$ to $\mathcal B$. Define $U(n):=\{U\in GL(\mathbb C^n):U \text{ is unitary with respect to the standard Hermitian inner product}\}$. Conjugating the representation by this coordinate isomorphism gives
\begin{align*}
A:=\{U_{\mathcal B}^{-1}\rho(t)U_{\mathcal B}:t\in T\}\le U(n).
\end{align*}
This is a subgroup because $\rho$ is a group homomorphism, and it is abelian because $T$ is abelian.
Now [citetheorem:9717] applies to the abelian subgroup $A\le U(n)$. Its conclusion is exactly simultaneous diagonalization: after changing to a suitable orthonormal basis, every element of $A$ is diagonal. Translating this basis back through $U_{\mathcal B}$ gives an orthonormal basis $(e_1,\dots,e_n)$ of $V$ in which every $\rho(t)$ is diagonal. Therefore, for each fixed index $i$, the vector $e_i$ is an eigenvector of every operator $\rho(t)$. Since $\rho(t)$ is unitary, the corresponding eigenvalue has modulus $1$, so there is a function
\begin{align*}
\alpha_i:T\to S^1
\end{align*}
such that
\begin{align*}
\rho(t)e_i=\alpha_i(t)e_i
\end{align*}
for every $t\in T$.
[/guided]
[/step]
[step:Show that each common eigenvalue function is a continuous character]
Fix $i\in\{1,\dots,n\}$. Since $e_i$ is nonzero and $\rho(t)e_i=\alpha_i(t)e_i$, the value $\alpha_i(t)$ is uniquely determined for each $t\in T$.
For $s,t\in T$, the representation law gives
\begin{align*}
\alpha_i(st)e_i=\rho(st)e_i=\rho(s)\rho(t)e_i=\rho(s)(\alpha_i(t)e_i)=\alpha_i(t)\alpha_i(s)e_i.
\end{align*}
Since $e_i\ne 0$ and multiplication in $\mathbb C$ is commutative,
\begin{align*}
\alpha_i(st)=\alpha_i(s)\alpha_i(t).
\end{align*}
Thus $\alpha_i:T\to S^1$ is a group homomorphism.
It remains to check continuity. Because $(e_i,e_i)_T=1$, for every $t\in T$ we have
\begin{align*}
\alpha_i(t)=(\rho(t)e_i,e_i)_T.
\end{align*}
The evaluation action $GL(V)\times V\to V$, $(A,v)\mapsto Av$, is continuous in finite dimension. Since $\rho:T\to GL(V)$ is continuous and $e_i\in V$ is fixed, the map $t\mapsto \rho(t)e_i$ from $T$ to $V$ is continuous. The map $v\mapsto (v,e_i)_T$ from $V$ to $\mathbb C$ is linear and continuous. Therefore $\alpha_i:T\to S^1$ is continuous. Hence each $\alpha_i$ is a continuous character of $T$.
[/step]
[step:Identify the weight spaces and obtain the finite direct sum]
Define the finite set of characters
\begin{align*}
\Lambda:=\{\alpha_i:1\le i\le n\}.
\end{align*}
For every $\lambda\in\Lambda$, define the index set
\begin{align*}
I_\lambda:=\{i\in\{1,\dots,n\}:\alpha_i=\lambda\}.
\end{align*}
We claim that
\begin{align*}
V_\lambda=\operatorname{span}_{\mathbb C}\{e_i:i\in I_\lambda\}
\end{align*}
for every $\lambda\in\Lambda$.
First, if $i\in I_\lambda$, then $\alpha_i=\lambda$, so
\begin{align*}
\rho(t)e_i=\lambda(t)e_i
\end{align*}
for every $t\in T$. Hence $e_i\in V_\lambda$, and therefore
\begin{align*}
\operatorname{span}_{\mathbb C}\{e_i:i\in I_\lambda\}\subset V_\lambda.
\end{align*}
Conversely, let $v\in V_\lambda$. Since $(e_1,\dots,e_n)$ is a basis of $V$, there are unique scalars $c_1,\dots,c_n\in\mathbb C$ such that
\begin{align*}
v=\sum_{i=1}^n c_i e_i.
\end{align*}
For every $t\in T$, the equality $\rho(t)v=\lambda(t)v$ gives
\begin{align*}
\sum_{i=1}^n c_i\alpha_i(t)e_i=\sum_{i=1}^n c_i\lambda(t)e_i.
\end{align*}
By uniqueness of coordinates in the basis $(e_1,\dots,e_n)$,
\begin{align*}
c_i(\alpha_i(t)-\lambda(t))=0
\end{align*}
for every $i$ and every $t\in T$. If $c_i\ne 0$, then $\alpha_i(t)=\lambda(t)$ for every $t\in T$, so $\alpha_i=\lambda$ and $i\in I_\lambda$. Thus $v$ lies in $\operatorname{span}_{\mathbb C}\{e_i:i\in I_\lambda\}$.
If $\lambda:T\to S^1$ is a continuous character not belonging to $\Lambda$, let $v\in V_\lambda$ and write $v=\sum_{i=1}^n c_i e_i$. For each $i$, the identity $c_i(\alpha_i(t)-\lambda(t))=0$ holds for every $t\in T$. Since $\lambda\neq \alpha_i$, there exists $t_i\in T$ such that $\alpha_i(t_i)\neq \lambda(t_i)$, and therefore $c_i=0$. Hence $v=0$, so $V_\lambda=\{0\}$. Since $\Lambda$ is finite and the basis vectors split into the disjoint groups indexed by the sets $I_\lambda$, we obtain
\begin{align*}
V=\bigoplus_{\lambda\in\Lambda}\operatorname{span}_{\mathbb C}\{e_i:i\in I_\lambda\}=\bigoplus_{\lambda\in\Lambda}V_\lambda.
\end{align*}
Equivalently,
\begin{align*}
V=\bigoplus_{\lambda:T\to S^1}V_\lambda,
\end{align*}
because all summands with $\lambda\notin\Lambda$ are zero. Hence only finitely many continuous characters have nonzero weight space, and the asserted weight space decomposition follows.
[/step]