【发布时间】:2017-03-18 16:50:42
【问题描述】:
我正在使用 ASP.NET-MVC 框架开始一个新项目。我想在这个项目中使用 TypeScript 来代替 JavaScript。 Visual Studio 很容易支持 TypeScript,但似乎(完全)与 .cshtml 剃须刀文件不兼容。我能够在 .ts 文件中创建我的类并在我的 .cshtml 文件中调用这些类,问题是当我将参数传递给 .cshtml 文件中的对象时,TypeSafety 被忽略并且函数像运行一样运行从未定义类型。
.ts 文件
export class SomeClass {
name: number;
constructor(public tName: number) {
this.name = tName;
}
public sayName() {
alert(this.name);
}
}
.cshtml 文件
var instance = new SomeClass("Timmy");
instance.sayName();
如您所见,即使我明确将参数定义为仅接受数字,我仍将字符串传递给构造函数,但 TypeSafely 被忽略并且 TypeScript/JavaScript 执行时就好像没有问题一样。
这两种文件类型都是由 Microsoft 发明的,所以我有点惊讶它们彼此之间并没有更友好一点。这不是世界末日,至少我仍然能够使用面向对象编程,我只是好奇是否有其他人经历过这种情况并且可以给我一个简短的解释。
【问题讨论】:
-
我认为 tsc 会编译(Transpile)带有
.ts扩展名的代码。我错了吗?
标签: .net asp.net-mvc visual-studio razor typescript