Не стоит использовать connect в качестве декоратора. Попробуйте так:
export default connect(mapStateToProps, mapDispatchToProps)(MainLayout);
Декораторы классов нужны для того, чтобы модифицировать поведение конструктора класса, поэтому TS требует строгого соответствия между декорируемым классом и результатом работы декорато-функции. В случае с connect происходит совсем другое: connect просто оборачивает компонент в компонент высшего порядка. Получается, что вместо модификации конструктора, декоратор-функция будет возвращать качествнно-новый класс.
Гайд по применению connect в TS