ものすごく正論で申し訳ないですが、この手の質問に対してはこういうアドバイスになります。
とある処理を異なる言語に書き換えをするというのは別にない話ではないですが、
「変換する」という考え方をしてしまうと、変換元のコードにしか目がいかなくなりますし、
言語仕様や思想が違うのですから単純な書き換えができないのは当然です。
変数の定義の仕方ひとつとってもそうですね。
で、あれば、答えは単純で、
「きちんと実現している要件を整理し、設計に起こし、1からコードを書く」のが正解です。
「この機能はあの言語ならこう書く」みたいなことをチマチマ調べてるのは非常に勿体ないですし、
結局、元のコードが何を実現すべく組まれたか把握できていないと、完成して動かしたところで実現できたかどうかは分からないわけですから。
考え方は
配列の総和を求めるコードをJavaで書いたものをTypeScriptに変換する。
配列の総和を求めるコードをTypeScriptで書く
です。
既に書いたJavaのコードは忘れてください。
同じ言語間でフレームワークを乗せ換えるなんてこともやりますけど、
「こっちのフレームワークのこの機能は、あっちのフレームワークではどういう機能名か」
の変換テーブルを作るよりも、設計書をもとに1から作り直した方が着実に進んだりします。
目的は「変換すること」ではなく「正しく機能させること」であるはずですから