если мы об оптимизациях и скорости выполнения, то в принципе нужно строго использовать типы. Потому что разные типы, занимают разное количество байтов, а самая дорогая операция это аллокации, насколько крутой, бы ни был, garbage collector, он не исправит проблемы с лишними аллокациями.
ну в жс нет строгой типизации
только если тс подрубить ,чтобы на этапе компиляции он тебе тут же подсвечивал, если где косяк
разные типы можно и нужно использовать, их не зря сделали
и об оптимизации нужно думать во время проблемы с ней, а не на каждый чих
хотя я тоже люблю этим заниматься (после плюсов так, хех), но это херовая привычка, нужно знать меру в этом