В ES6 методы класса не перечисляются. В ES5 классы были скомпилированы в функции, и эти методы перечислимы. Поэтому после обновления следующие методы больше не повторяются:
for (const i in constructor) { ... }
Отсюда и частично решение: Получение списка статики для класса ES6
// clone the class
const original: Function = Object.assign( Object.create( Object.getPrototypeOf(constructor)), constructor);
Object.getOwnPropertyNames(constructor)
.filter(prop => typeof prop === 'function')
.forEach(val => {
// copy the static method since it's not copied from the class clone
original[i] = constructor[i];
....
})
Однако это даст вам только статические методы. Чтобы получить все методы, вам нужно что-то вроде:
[
...Object.getOwnPropertyNames(constructor),
...Object.getOwnPropertyNames(constructor.prototype)
]
.filter(prop => typeof (constructor[prop] || constructor.prototype[prop]) === 'function')
.forEach(val => ...)