requireJS“Uncaught TypeError:undefined不是函数”

时间:2013-10-24 16:12:37

标签: requirejs typescript

我一直在对几个项目使用requirejs,今天是我第一次遇到这个问题而不确定如何修复它。我正在使用requirejs和tyepscript,我无法分辨这里有什么问题。有人可以看看吗?

这是我的主要内容:

///<reference path="../lib/require/requirejs.d.ts"/>
///<reference path="TestClass.ts"/>
require.config(
    {
        baseUrl: 'js',
        paths: {
            puremvc: 'lib/puremvc/puremvc_standard_1.0_min'
        }
    }
);
require(
    [
        'puremvc',
        'sim/TestClass'
    ],
    function (TestClass ) {
        var test = new TestClass();
        test.logMsg("WHO AM I");
    }
);

这是我的TestClass.ts

class TestClass{
    constructor(){
        console.log ("TestClass constructor")
    }
   public logMsg(msg:string){
        console.log ("TestClass.log(): " + msg);
    }
}
export = TestClass;

我的sim.html看起来像这个

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Simulation Tester</title>
<script src="js/lib/puremvc/puremvc_standard_1.0_min.js"></script>
<script data-main="js/sim/main.js" src="js/lib/require/require.js" ></script>
</head>
<body >
</body>
</html>

这是我的文件夹结构:

- root 
    - sim.html
    - js
        - lib
            - require (containt requirejs)
        - sim
            - main.ts
            - TestClass.ts

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您是通过脚本标记还是通过require.js加载puremvc?我认为你不想两者兼顾。

在这里:

require(
    [
        'puremvc',
        'sim/TestClass'
    ],
    function (TestClass ) {
        var test = new TestClass();
        test.logMsg("WHO AM I");
    }
);

回调函数按照列出的顺序获取模块 。因此'TestClass'参数正在从'puremvc'模块中提供值。您可能需要function(puremvc, TestClass)来代替。