我正在使用ASP.NET-MVC框架开始一个新项目.我想在这个项目中使用TypeScript代替JavaScript.Visual Studio很容易支持TypeScript,但似乎与.cshtml razor文件(完全)兼容.我能够在.ts文件中创建我的类并在我的.cshtml文件中调用这些类,问题是当我将参数传递给.cshtml文件中的对象时,TypeSafety被忽略并且函数运行就像一个类型从未定义过.
.ts文件
export class SomeClass {
name: number;
constructor(public tName: number) {
this.name = tName;
}
public sayName() {
alert(this.name);
}
}
Run Code Online (Sandbox Code Playgroud)
.cshtml文件
var instance = new SomeClass("Timmy");
instance.sayName();
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我将一个字符串传递给构造函数,即使我明确地将参数定义为仅接受数字,但是TypeSafely被忽略并且TypeScript/JavaScript执行就好像没有问题一样.
这两种文件类型都是由微软发明的,所以我有点惊讶他们彼此之间没有那么友好.这不是世界末日,至少我仍然可以使用面向对象编程,我只是好奇是否有其他人经历过这个并且可以给我一个简短的解释.