Показать сообщение отдельно
  #1 (permalink)  
Старый 16.07.2018, 04:22
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Вопрос про babel-preset-env
Всем привет.

Пишу пакет. Столкнулся с кое-каким моментом при компиляции ES6(2015) в ES5 с помощью Babel.

Есть такая исходная конструкция:

switch(typeof obj) {

   case 'string':
   case 'number':
      ///...
      break;

   case 'object':
      //...
      break;
}



Но результат после компиляции получается вот такой:

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

switch(typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) {

   case 'string':
   case 'number':
      ///...
      break;

   case 'object':
      //...
      break;
}


Я понимаю, что это полифил для Symbol, но как мне указать явно, что там полифилить мне ничего не нужно? Ведь я там явно знаю, что проверок на typeof "symbol" у меня нет, поэтому мне лишние вызовы не нужны.

P.S.: знаю, что экономия на спичках, но я перфекционист.
Ответить с цитированием