Предназначайтесь для различных версий Javascript с помощью TypeScript
TypeScript может глобально предназначаться для различных версий Javascript - вы можете переключаться между переносом ES3, ES5 или ES6.
Мы должны поддерживать IE, поэтому ES3 - наш самый низкий общий знаменатель.
Тем не менее, хорошие браузеры (например, Chrome) уже поддерживают ES6 и смогут выполнять значительно меньший код ES6 с оптимизацией.
Итак, из того же источника TypeScript я хочу служить ES3 для IE и ES6 для Chrome.
Есть ли способ заставить TypeScript переносить несколько файлов JS (может быть, как
*.es3
а также*.es6
или что-то в этом роде) чтобы мы могли выбрать, какую версию подавать? (В идеале в VS 2015)В качестве альтернативы в C# я могу получить доступ к транспортеру TypeScript для выполнения шага во время выполнения?
2 ответа
Вы можете указать, какую версию вы хотите передать, используя командную строку (--target ES3
).
Вы также можете указать выходной каталог, чтобы вы могли выводить как переносимый код ES6, так и ES3, а затем выбирать, на что ссылаться "на лету" (используя ifs старого стиля IE).
Как насчет использования различных tsconfig.json
файлы?
Например, что-то вроде:
- root
- ts-source
- js-es3
- tsconfig.json
- js
- js-es5
- tsconfig.json
- js
Тогда root/js-es3/tsconfig.json
:
{
"compilerOptions": {
"target": "ES3",
"outDir": "js",
"rootDir": "../ts-srouce"
}
}
И root/js-es5/tsconfig.json
:
{
"compilerOptions": {
"target": "ES5",
"outDir": "js",
"rootDir": "../ts-srouce"
}
}
Я не пользователь Visual Studio, поэтому я не знаю, как поддерживать разные tsconfig.json
файлы там, но даже если вы не можете, то вы можете скомпилировать его с помощью tsc
,