выяснил, что дело в [id: string]: Interface2, а именно в [id: string]. Если поставить там конкретное название ключа - ошибки не будет, но мне так не пойдет, т.к. имена ключей могут быть любыми
точно, у uglify есть даже параметр для этого дела - --keep-fnames
Do not mangle/drop function names. Useful for code relying on Function.prototype.name.
phantomJS, не, не работает. Неужели нет нормальных способов? Куча же ситуаций, когда внутри методов у которых нет аргументов - используются зависимости: вызываются другие классы, создаются объекты классов и вызываются методы этих объектов (не важно - статические методы или нет), которые надо для тестов сделать фейковыми, только в моем случае не метод а свойство.
it('должен корректно получаться объект с названиями параметров и их значениями', () => {
result = UrlManager.getUrlParameters();
expect(result).toEqual(expected);
});
Ну и надо что бы window.Settings.urlParams подставился переменной urlparams , заместо = свойства класса Settings.urlParams
Settings.init() - практически 1-е, что происходит при работе скрипта, затем уже создаются объекты других классов и т.п. Разумеется, значения, уникальные для каждого экземпляра других объектов хранятся в самих экземплярах, а не в Settings.
Settings - класс, что-то типа глобального объекта со всеми общими значениями (которые могут быть перезаписаны), используемыми в разных классах. Не синглтон. Статичный, что бы не вызывать во всех других классах, где он используется его через new Settings, а просто при любой надобности использовать var myVariable = Settings.sizes.width, к примеру.
Т.е. browserify с учетом того, что у меня всего один файл в ES6 синтаксисе, не поломает мне подключение этого файла после конвертации babel'ом через тег script и при этом сделает возможность этот файл импортировать в spec файлы с тестами?