Для чего предназначена цель в tsconfig.json?


Ответы:


107

Я новичок в Typescript. Что означает Target в tsconfig.json?

targetуказывает, какая цель JavaScript должна быть испущена из данного TypeScript . Примеры:

target:es5

()=>nullстанет, function(){return null}поскольку ES5 не имеет стрелочных функций.

target:es6

()=>nullстанет, ()=>nullпоскольку ES6 имеет стрелочные функции.


5
Мне все еще нужен babel, если я нацелен на es5, также мой код машинописного текста содержит async и await, будет ли он компилироваться, если я укажу цель как es5?
Анкит Раонка,

4
Для этого не нужен вавилон 🌹
basarat

Я использовал, es5но он интерпретирует деструктуризацию [...arr].mapкак arr.slice().map, что нарушает работу объекта, подобного массиву, которого нет slice. Когда я нацелен на es6, он начинает работать в моем браузере, но будет ли он работать для всех?
Qwerty

@Qwerty Нет, не пойдет. Например, он не будет работать в Internet Explorer 11, поскольку он не поддерживает es6 и не имеет функции .map. Даже если вы нацеливаетесь на es5, он ВСЕ ЕЩЕ не будет работать в Internet Explorer, потому что транспилятор не должен добавлять полифиллы. Вам все равно нужно добавить полифилл, если вы хотите поддерживать браузеры, отличные от es6.
pabrams

@pabrams, значит, IE11 даже не поддерживает все ES5?
Qwerty

10

Target изменяет версию JavaScript, под которую вы компилируете.

Параметры доступны по адресу https://www.typescriptlang.org/docs/handbook/compiler-options.html.

Чтобы лучше понять, как целевой флаг изменяет мой код, я скомпилировал тестовый код для каждой из разных версий, чтобы лучше понять различия.

https://github.com/aizatto/typescript-playground/tree/master/dist/test-async-main

Я также веду записи о том, на что мне следует ориентироваться, в зависимости от того, на какую среду я смотрю.

https://www.aizatto.com/notes/typescript

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.