块范围声明... TypeScript和Asp.net MVC 5

时间:2015-10-28 22:34:42

标签: javascript c# asp.net-mvc-5 typescript

我尝试在我的asp.net mvc5项目TypeScript中使用。我创建app.ts文件并安装nuget-package 的 jquery.TypeScript.DefinitelyTyped 即可。 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>
}

我认为这是健康的代码,但我在google chrome调试控制台中捕获了下一个异常:

  

app.ts:3 Uncaught SyntaxError:块范围声明(let,const,   函数,类)在严格模式之外尚不支持

为什么会这样?以及如何解决它,非常感谢。

1 个答案:

答案 0 :(得分:3)

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

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

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