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