Najbardziej zastanawia mnie czy jest sens i czy to dobra praktyka pisać kod w typescript?
Ani dobra, ani zła. Kwestia gustu oraz innych uwarunkowań.
Jednak TypeScript ma tę wadę, że trzeba transpilować kod. W przeglądarce i tak zwykle się to robi (więc jeśli nie TypeScript to np. Webpack + Babel). Jednak w Node domyślnie nie ma potrzeby transpilować kodu i wrzucając bądź to TypeScripta, bądź to Flow, bądź to JSX, bądź po prostu zaawansowane ficzery z JS, które jeszcze nie są obsługiwane przez Node - sam sobie kładziesz kłody pod nogi i dokładasz dodatkowy krok. I wszystko będziesz musiał transpilować.
Oczywiście, możesz uznać, że zalety TypeScriptu są tego warte (ale to znowu kwestia gustu i rozeznania, czy faktycznie tego potrzebujesz. Moje podejście jest takie, że w Node staram się unikać transpilacji, bo to jest wygodniejsze, choćby przy testowaniu, debugowaniu itp. Nie trzeba czekać "aż się skompiluje", tylko masz kod i go uruchamiasz.
Co sądzicie o takim połaczeniu?
To spróbuj zakodować. Make it work, make it right, make it fast. (czyli najpierw kodujesz coś, żeby w ogóle zobaczyć np. jak się te rzeczy ze sobą łączą i skupiasz się na tym, "żeby działało". Potem myślisz o tym, jak to przerobić albo przepisać od nowa, żeby było elegancko/dobrze napisane. A potem myślisz o takich rzeczach jak np. optymalizacja).
A poza tym... im wcześniej odejdziesz od koncepcji projektu jako "zlepku różnych technologii" tym lepiej. Są w projektowaniu rzeczy ważniejsze niż to, czy będzie to napisane w TypeScript, albo czy użyjesz Moongose.