阻止作用域声明..TypeScript和Asp.net MVC 5

本文关键字:Asp net MVC TypeScript 作用域 声明 | 更新日期: 2023-09-27 18:19:50

我尝试在我的asp.net mvc5项目TypeScript中使用。我创建app.ts文件并安装nuget包jquery.TypeScript.DefinelyTyped。app.ts代码:

/// <reference path="typings/jquery/jquery.d.ts"/>
class TestClass {
    test(): void {
        alert("Taras TS");
    }
}
window.onload = () => {
    var tcs: TestClass = new TestClass();
    $('#taras').click(() => { tcs.test() });
};

这是一个非常简单的代码。在它之后,我创建了index.cshtml文件,其中创建了一些带有id='taras'的按钮,代码:

@{
    ViewBag.Title = "tmp";
}
<button id="taras"> TS EVENT </button>
@section scripts{
    <script src="@Url.Content("~/Scripts/app.ts")"></script>
}

我认为这是健康的代码,但我在谷歌chrome调试控制台中发现了下一个异常:

app.ts:3未捕获的语法错误:块范围的声明(let,const,函数、类)尚未在严格模式之外得到支持

为什么会发生这种情况?以及如何修复,非常感谢。

阻止作用域声明..TypeScript和Asp.net MVC 5

Url.Content仅将相对路径转换为绝对路径。它不会更改文件扩展名。

浏览器无法读取您的.ts文件(因此出现错误,因为它不理解TypeScript语法)。将文件扩展名更改为已编译的.js文件:

@section scripts{
   <script src="@Url.Content("~/Scripts/app.js")"></script>
}