Подтвердить что ты не робот

Использование TypeScript в cshtml файлах

Мне интересно, есть ли способ использовать TypeScript в файлах Razor cshtml?

Например, что-то вроде этого

<script language="text/typescript">
/// typescript goes here
</script>
4b9b3361

Ответ 1

TypeScript - не время выполнения; он перекрестно скомпилирован в JavaScript. В результате вам нужно будет написать свой TypeScript, скомпилировать его, а затем включить либо в теги JavaScript script, либо как внешний файл.

Ответ 2

Это возможно. Я разработал TypeScript Compile - автоматический компилятор TypeScript для JavaScript на лету. Попробуйте!

Ответ 3

Позвольте мне добавить к Robs ответ, что технически возможно встроить компилятор typescript в загрузку страницы и иметь код компиляции браузера, написанный в тегах <script language="text/typescript">.

Однако производительность была бы субоптимальной, и предпосылка на сервере была бы предпочтительной. Технически ничто не мешает препроцессору делать это (T4 может это сделать).

Ответ 4

Я только что проверил с моим любимым VS-расширением: Основные веб-сайты

Они уже включили компиляцию файла .ts при сохранении (рекомендуется также использовать оригинальный плагин для Intellisense).

Это, очевидно, работает только для файлов .ts. На мой взгляд, как только вы достигнете сложности, чтобы выбрать typescript над javascript, вы должны использовать его в отдельном файле, так или иначе.

Ответ 5

Вы можете вручную скомпилировать файлы TypeScript с помощью tsc.exe, а затем добавить полученный Javascript в свой проект или использовать инструмент, например Web Essentials, который компилируется при сохранении.

Поскольку компилятор может быть скомпилирован в Javascript, вы также можете позволить браузеру пользователя выполнять компиляцию "на лету" (за счет производительности и размера файла, компилятор довольно велик). Примером такого подхода является решение niutech.

Если вы используете Bundling and Minification, я только что выпустил реализацию IBundleTransform, которая компилирует TypeScript в Javascript. Он находится на GitHub и NuGet (Install-Package TypeScriptBundleTransform). Если вы еще не используете Bundling and Minification, это стоит посмотреть!