TypeScript: какая «правильная» цель для узла 11?

TypeScript имеет конфигурацию target со многими значениями, такими как esnext, es2015, es6 и т. д. (очень запутанно)

Текущая версия NodeJ (11.11.0) поддерживает многие новые функции JavaScript. Можно ли настроить таргетинг esnext на TypeScript? это будет работать?

Если нет, то какое право target использовать при нацеливании на nodeJs 11.11.0

Редактировать:

Благодаря @Seblor мы знаем, что esnext очень динамичен, и TC39 может добавлять функции по своему усмотрению. Он представляет собой следующую версию JavaScript, над которой ведется работа (относительно согласования функций)

Уточненный вопрос должен быть: Согласно текущей версии NodeJs (11.11.0) и текущей версии TypeScript (3.3), можем ли мы использовать esnext вместо target?

es2015 и es6 одинаковы. esnext — следующая версия на момент написания. Подробнее здесь: en.wikipedia.org/wiki/ECMAScript

Seblor 11.03.2019 10:47

Похоже, что esnext очень динамичен и всегда может измениться, но TypeScript поддержка esnext статична (для каждой версии)

gilamran 11.03.2019 11:11

esnext «изменится» после выпуска новой версии ECMAScript.

Seblor 11.03.2019 11:12
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
15
3
7 513
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Глядя на узел.зеленый, поддержка ES2018 кажется полной в Node 11.11.0, поэтому вы сможете без проблем установить ES2018 в качестве цели.

Вы можете испытать удачу, используя ЕС2019 или даже ESNСледующий, так как поддержка выглядит достаточно хорошо. Однако я не знаю, будет ли typescript использовать еще не реализованные функции, если вы используете ESNext в качестве цели (например, частные свойства).

Лично я бы придерживался ES2018, так как не вижу необходимости настаивать на ESNext.

@RTW На самом деле я смотрел на этап 3, который (в то время: web.archive.org/web/20190318210754/https://node.green) был в основном покрыт. Нет смысла использовать этап 2 (или ниже), поскольку они, вероятно, могут быть изменены.

Seblor 13.11.2019 20:05
Ответ принят как подходящий

Итак, ответ (как обычно) Зависит от! Это зависит от функций, которые вы планируете использовать. Версия TypeScript, target на tsconfig.json и версия NodeJS.

Прежде чем использовать функцию JavaScript, необходимо проверить две вещи:

  1. Вы должны посмотреть на этот стол и посмотреть на столбец целевой среды, в моем случае это Столбец NodeJs. И убедитесь, что ячейка зеленого цвета. Красный означает, что вы не можете запустить эту функцию в этой среде.

  2. Убедитесь, что вы можете скомпилировать свой код с помощью TypeScript. Если вы можете скомпилировать код с помощью TypeScript, все в порядке. Обратите внимание, что вы НЕ можете рассчитывать на Столбец TypeScript. Красная ячейка означает, что скомпилированный код не будет работать на предыдущей версии JavaScript...

Например BigInt:

TypeScript с target: "esnext" скомпилирует (без проблем) код с bigint (пока ячейка поддержки будет красной), и вы сможете запустить код JavaScript с bigint на NodeJS 11

Обратите внимание, что в левом верхнем углу есть группа версий ECMAScript. вы можете пойти ниже, чем esnext

На основе Сопоставление узла и цели в вики TypeScript "es2018" — это правильное сопоставление для Node 10, "es2019" — правильное сопоставление для Node 12. Кажется, что версии Node, отличные от LTS, не документированы, но, учитывая эту информацию, я чувствую, что "es2018" является самым безопасным цель.

Здорово, что эта информация есть на вики TypeScript. Спасибо!

vhs 09.04.2021 08:46

Другие вопросы по теме