Учитывая, что npm поставляется с npx, вы можете просто запустить TypeScript с npx и указать желаемый номер версии, например:
$ npx typescript@3.3.334
Это загрузит пакет typescript
в нужной версии и запустит его (а затем выбросит). Единственным недостатком этого является то, что пакет будет переустанавливаться снова и снова, каждый раз, когда вы запускаете npx.
Вы можете обойти эту проблему, установив typescript
локально: если он уже установлен локально, эта локальная копия используется, что ускоряет работу, но, вообще говоря, это самый простой способ убедиться, что при каждом отдельном вызове вы получите версию, которую вы ожидаете (в отличие от глобальной установки через npm -g typescript@3.3.334
, которая может быть перезаписана кем-то другим, даже если вы этого не заметите.
Тем не менее, это то, что вы явно упомянули, что хотите избежать этого. Таким образом, описанный выше способ может стать лучшим выбором для вас.