我正在尝试使用Typescript(1.7.5)和AMD模块创建一个应用程序。我已经添加了对r.js和requirejs.js的引用。以下是我的TS代码:
export module TestNs {
export class TestClass {
public fn(): void{
debugger;
}
}
}
这是我的aspx页面,称为“ fn()”:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TypeScriptPage.aspx.cs" Inherits="WebApplication1.TypeScriptPage" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div id="div1">
</div>
<script src="Scripts/r.js"></script>
<script src="Scripts/require.js"></script>
<script src="Scripts/TypeScriptBegin.js"></script>
<script type="text/javascript">
var testObj = new TestNs.TestClass();
testObj.fn();
</script>
</form>
</body>
</html>
但我得到以下错误:
TestNS是未定义的
“ JavaScript运行时错误:匿名define()模块不匹配:函数(要求,导出)”
但是,当我删除“ export”关键字时,以上代码可以正常工作。我是Typescript和requirejs的新手。谁能指出我做错了什么以及如何解决此问题?
提前致谢。
我认为您应该删除以下行:
export module TestNs
类型脚本中的每个文件都是一个模块,因此您不需要该部分。
编辑
然后在您的javascript中删除脚本标签以加载您的类并使用类似以下内容的代码:
var moduleName = 'Scripts/TypeScriptBegin';
require([moduleName], function(TestNs){
var testObj = new TestNs.TestClass();
testObj.fn();
})
希望这会有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句