Какие у вас нынче странные определения. Так вот, nodejs - интерпретатор. Его основа - v8. Можешь считать, что обработчик js вырезали из google chrome и приклеили к нему пару полезных классов/методов/объектов. TypeScript - технически язык, но скорее его дцп. Это бабель js, но чуть удобнее и компилируемый. Он просто конвертирует типизированный ts (тот-же самый js, но с типами с раком мозга как у шарпа) в js. Это надо для запуска твоего нового кода написанного в стандарте 2019года в браузерах до нашей эры. И поверь, препроцессор - это некая утилита, которая в некоторых местах может оптимизировать компилируемый код, а трансляция - в нашем случае интерпретация - сначала парсит код, а потом +-построчно его выполняет. Мешаешь понятия, в общем. А если ты так сильно хочешь компилировать и использовать пропроцессор, то есть плюсы, верно? Если надо именно с js перевести в исполняющий, тут тебе, вероятно, поможет pkg. Он любезно скомпилирует с webAssembly в исполняющий, если не ошибаюсь. А если не хочешь или надо не исполняющий, то компилируй код C++ с условиями соблюдения правилами методов в .node (от nodejs же), или webAssembly. Для nodejs компиляции есть cmake-js, node-gyp.