Компилятор Typescript или ES2015 - либо оптимизировать код? - PullRequest
2 голосов
/ 12 марта 2019

На земле компилятора для других языков что-то вроде этого было бы оптимизировано, когда он скомпилирован для извлечения из цикла, чтобы каждый раз не создавался новый объект:

const arr = [1, 2, 3, 4, 5]

arr.map(num => {

    const one_time = 5; // this never changes, can be lifted out of the loop.

    return num * one_time;
 })

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

Я не ожидаю, что ES2015 сделает это, так как он интерпретируется, но я рад ошибаться.

Бонусные баллы, если кто-то может сказать мне, как лучше понять это для себя вбудущее.

Спасибо, ребята!

1 Ответ

3 голосов
/ 12 марта 2019

Нет, компилятор TypeScript не выполняет никаких оптимизаций.Это одна из его нецелевых задач:

Нецели

  • Агрессивная оптимизация производительности программ во время выполнения.Вместо этого генерируйте идиоматический код JavaScript, который хорошо сочетается с характеристиками производительности платформ времени выполнения.

Источник: https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals

Что касается ES2015, то это спецификация языка.Хотя движки JS будут компилироваться и оптимизироваться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...