Тогда я бы не называл это «удачный пример такой разбивки». Это огромная дыра.
F>JS же весь динамический, потому и спокойно будут передаваться работать оба типа.
Только если автор Qux в своём классе переименует поля/свойства и изменит сигнатуры методов, то получим ошибку в рантайме, правильно?