示例代码:Index.ts文件,其中包含sample.ts
的引用/// <reference path="sample.ts" />
var s: sample.Calculate = new sample.Calculate(5, 5); -- error thrown
s.alertme();
Sample.ts文件:
module sample {
export class Calculate {
constructor(public x: number, public y: number) {
console.log(x + y);
}
alertme() {
alert('ok');
}
}
}
PS:我正在使用visual studio 2015。 HTML:
@{
ViewBag.Title = "Home Page";
}
<div class="jumbotron">
<h1>MVC</h1>
<p class="lead">ASP.NET is a free web framework for building great Web sites and Web applications using HTML, CSS and JavaScript.</p>
<p><a href="http://asp.net" class="btn btn-primary btn-lg">Learn more »</a></p>
</div>
<div class="row">
<div class="col-md-4">
</div>
</div>
@section scripts{
<script src="~/Scripts/typings/Index.js"></script>
}
答案 0 :(得分:1)
您的Sample.js
文件似乎未加载到浏览器中,因此sample
模块未加载。
根据您的代码,您似乎想要使用脚本标记加载脚本而不使用模块系统,如果是这样的话,那么您需要做的就是:
@section scripts{
<script src="~/Scripts/typings/Sample.js"></script>
<script src="~/Scripts/typings/Index.js"></script>
}
您确实使用requirejs
标记了问题,因此,如果您打算使用该问题,那么您需要执行以下操作:
// Sample.ts
export module sample {
...
}
// Index.ts
/// <reference path="sample.ts" />
import sample = require('./Sample');
var s: sample.Calculate = new sample.Calculate(5, 5); // should be fine
您还需要添加&#34; amd&#34;模块到你的compiler options 您可以在the Modules section of the docs中了解更多相关信息。