Предназначайтесь для различных версий 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,

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