IE11 дает ошибку SCRIPT1002 при определении класса в javascript

у меня есть некоторые проблемы с IE11 и статическим классом javascript, который я написал.

ошибка, которую я получаю:

SCRIPT1002: синтаксическая ошибка ргмуи.коробка.js (6,1)

что указывает на:

// ===========================================
// RGMUI BOX
// Static class

class RgMuiBox {
^

Итак, я предполагаю, что я определяю этот класс неправильно? Как правильно это сделать?

Я нашел сообщение, так что, похоже, указывает, что проблема ES5 vs ES6 - и я считаю, что IE11 не поддерживает ЕС6?

просто, чтобы быть полным, это то, что у меня есть (упрощенный):

class RgMuiBox {
    static method1() {
    // .. code ..
    }
}

спасибо!

3 ответов


ненавижу открывать такую старую проблему, но она по-прежнему отображается высоко в результатах, поэтому я добавлю, что я узнал:

чтобы повторить то, что сказали @Mikey и @REJH, классы не распознаются IE11.

Что сказал, инструменты, как Бабель позволит вам перевести классы в то, что будет работать на IE11.


@Mikey прав. IE11 не распознает этот синтаксис для классов, поскольку спецификация ES6: https://kangax.github.io/compat-table/es6/

class RgMuiBox {
    static method1() {
    // .. code ..
    }
}

Я все еще не уверен, что следующий правильный способ определить статический класс, но он работает:

var RgMuiBox = {};
  RgMuiBox.method = function() {
    // ....
  }

просто оставлю это здесь, так что этот вопрос имеет какой-то ответ, который может помочь людям идти. Если есть альтернативы вышесказанному, я хотел бы услышать о них!


пример статического класса

var _createClass = (function() {
function defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
  var descriptor = props[i];
  descriptor.enumerable = descriptor.enumerable || false;
  descriptor.configurable = true;
  if ("value" in descriptor) descriptor.writable = true;
  Object.defineProperty(target, descriptor.key, descriptor);
}
}
return function(Constructor, protoProps, staticProps) {
if (protoProps) defineProperties(Constructor.prototype, protoProps);
if (staticProps) defineProperties(Constructor, staticProps);
return Constructor;
};
})();

function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}

var StaticClass = (function() {
function StaticClass() {
_classCallCheck(this, StaticClass);
}

_createClass(StaticClass, null, [
{
  key: "method1",
  value: function method1() {
    // .. code ..
  }
}
]);

return StaticClass;
})();