我想知道有没有办法在 Razor cshtml 文件上使用 TypeScript?
例如,像这样
<script language="text/typescript">
/// typescript goes here
</script>
我想知道有没有办法在 Razor cshtml 文件上使用 TypeScript?
例如,像这样
<script language="text/typescript">
/// typescript goes here
</script>
这是可能的。我开发了TypeScript Compile - 一种将 TypeScript 自动编译为 JavaScript 的即时编译器。试试!
TypeScript 不是运行时;它被交叉编译成 JavaScript。因此,您需要编写 TypeScript,对其进行编译,然后将其包含在 JavaScript 脚本标签中或作为外部文件。
让我添加到 Rob 的回答中,在技术上可以将 typescript 编译器嵌入到页面下载中,并让浏览器编译用标签编写的<script language="text/typescript">
代码。
然而,性能将是次优的,并且在服务器上进行预编译将是首选。从技术上讲,也没有什么可以阻止预处理器执行此操作(T4 可以执行此操作)。
我刚刚检查了我最喜欢的 VS 扩展:Web Essentials
他们已经在保存时包含了 .ts 文件编译(建议也使用 Intellisense 的原始插件)。
不过,这显然只适用于 .ts 文件。在我看来,一旦你达到了选择 typescript 而不是 javascript 的复杂性,你应该在一个单独的文件中使用它,无论如何。
您可以使用 tsc.exe 手动编译 TypeScript 文件,然后将生成的 Javascript 添加到您的项目或使用工具,例如保存时编译的Web Essentials。
由于编译器可以编译为 Javascript,因此您也可以让用户的浏览器即时编译(以性能和文件大小为代价,编译器相当大)。这种方法的一个例子是 niutech 的解决方案。
如果您使用捆绑和缩小,我刚刚发布了 IBundleTransform 的实现,它将 TypeScript 编译为 Javascript。它在GitHub和 NuGet (Install-Package TypeScriptBundleTransform) 上。如果您还没有使用 Bundling and Minification,那么值得一看!