Я использую ES6 + babel с плагином ["iife-wrap"].Получить тип значения в ES6
Я пытаюсь переделать плагин, который я создаю раньше (форма-валидация). Я пытаюсь проверить, являются ли данные объектом.
Для ES5 это просто: typeof blah === 'object'
или string, function, and etc.
Однако, если я положил его на ES6. Это приведет к ошибке . Некопаемое TypeError: _typeof не является функцией
Вот образец моего кода.
let es6function =() => {
return 'asd';
}
console.log(typeof es6function)
class Person {
}
let tryThis = new Person()
console.log(tryThis instanceof Person)
ES5: Сообщение скомпилированные
;
(function() {
'use strict';
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
var _typeof = typeof Symbol === "function" && _typeof(Symbol.iterator) === "symbol" ? function (obj) {
return typeof obj === 'undefined' ? 'undefined' : _typeof(obj);
} : function (obj) {
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj === 'undefined' ? 'undefined' : _typeof(obj);
};
var es6function = function es6function() {
return 'asd';
};
console.log(typeof es6function === 'undefined' ? 'undefined' : _typeof(es6function));
var Person = function Person() {
_classCallCheck(this, Person);
};
var tryThis = new Person();
console.log(tryThis instanceof Person);
})();
Любая помощь будет оценена. Благодарю.
Это почти определенно связано с вашим транспилером (babel). Он работает как ожидается в браузере, который поддерживает ES6 изначально. – rvighne
Кажется, что работает отлично для меня, ошибка говорит '_typeof', вы уверены, что у вас нет опечатки – adeneo
Я имею в виду переписанную. Подожди, я отредактирую. –