Прежде всего извините, что название не имеет смысла. Вот что я имею в виду, плюс TL; DR в конце.
Я использую библиотеку tslib от Microsoft, здесь - полный исходный код для контекста. Мне нужно было внести некоторые незначительные изменения в библиотеку, чтобы она работала с моим проектом, поэтому я скопировал код в файл и отредактировал его там. Модифицированный код работает с проектом React, над которым я работал ранее, но он разрывается с React Native из-за следующих строк:
(function (exporter) {
// some irrelevant stuff
__extends = function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
});
(я не изменял эту часть, вы можете найти его в строке 66 в исходный исходный код)
Когда React Native пытается скомпилировать это в нативный код, происходит сбой с сообщением об ошибке Prototype value can only be an object or null
с ошибкой, исходящей из назначения __extends = function(d, b) {
.
Итак, я каким-то образом нужно преобразовать эту внутреннюю анонимную функцию в объект, проблема в том, что, хотя я работал с JavaScript целую вечность, я действительно понятия не имею, что должен делать этот код. Я парень из ES6 +, это похоже на египетские иероглифы. Могут ли некоторые из вас JS ветераны прийти и спасти меня, пожалуйста?
TL; DR: Мне как-то нужно преобразовать __extends = fuction() {}
в объект, который будет выполнять ту же функцию, что и функция.