28

我想知道有没有办法在 Razor cshtml 文件上使用 TypeScript?

例如,像这样

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

5 回答 5

19

这是可能的。我开发了TypeScript Compile - 一种将 TypeScript 自动编译为 JavaScript 的即时编译器。试试!

于 2012-10-04T04:39:20.713 回答
17

TypeScript 不是运行时;它被交叉编译成 JavaScript。因此,您需要编写 TypeScript,对其进行编译,然后将其包含在 JavaScript 脚本标签中或作为外部文件。

于 2012-10-02T17:46:47.683 回答
5

让我添加到 Rob 的回答中,在技术上可以将 typescript 编译器嵌入到页面下载中,并让浏览器编译用标签编写的<script language="text/typescript">代码。

然而,性能将是次优的,并且在服务器上进行预编译将是首选。从技术上讲,也没有什么可以阻止预处理器执行此操作(T4 可以执行此操作)。

于 2012-10-02T22:25:35.687 回答
5

我刚刚检查了我最喜欢的 VS 扩展:Web Essentials

他们已经在保存时包含了 .ts 文件编译(建议也使用 Intellisense 的原始插件)。

不过,这显然只适用于 .ts 文件。在我看来,一旦你达到了选择 typescript 而不是 javascript 的复杂性,你应该在一个单独的文件中使用它,无论如何。

于 2012-10-04T23:49:55.083 回答
2

您可以使用 tsc.exe 手动编译 TypeScript 文件,然后将生成的 Javascript 添加到您的项目或使用工具,例如保存时编译的Web Essentials

由于编译器可以编译为 Javascript,因此您也可以让用户的浏览器即时编译(以性能和文件大小为代价,编译器相当大)。这种方法的一个例子是 niutech 的解决方案。

如果您使用捆绑和缩小,我刚刚发布了 IBundleTransform 的实现,它将 TypeScript 编译为 Javascript。它在GitHub和 NuGet (Install-Package TypeScriptBundleTransform) 上。如果您还没有使用 Bundling and Minification,那么值得一看!

于 2012-10-07T22:38:55.660 回答