Что можно сделать в typescript если ты не знаешь будет модуль или нет, но функционал написать хочется? Динамический импорт, это немного другое..
Динамическим импортом можно, да. Написать его в корне модуля один раз, а остальные модули сделать функциями, принимающими модуль и возвращающими своё содержимое
Способов импорта только два. Статический - всегда безусловный, так что если кусок кода зависит от модуля, который либо есть, либо нет, то там без await не обойтись
Вообще нужен аналог #[cfg] из Rust, чтобы эмиттить код в зависимости от платформы. Но команда TS не допустит влияния типов на рантайм, пока TS не станет де-факто стандартом, и стадия extend не сменится на extinguish :)