TypeScript / Import&导出模块/类 - 运行导入的类时出现运行时错误

时间:2012-10-24 17:38:45

标签: javascript typescript

我正在使用TypeScript。

我的内部文件 String.ts 如下:

module Sgc.Sys {
    "use strict";
    export class String {       
        static trim(input: string): string {
            return input.replace(/^\s+|\s+$/g, "");
        };
//-- other methods below ...
    }
}

然后在文件 Number.ts (位于String.ts的同一文件夹中)中,我使用上面定义的方法Sgc.Sys.String.trim():

module Sgc.Sys {
    "use strict";
    export class Number {

    static someMethod(input : string) : string {
            //-- some code
            var str = Sgc.Sys.String.trim(input);
            return str;

        };
    }
}

问题:Sgc.Sys.String的方法修剪必须如上所述定义/调用,以便TypeScript可以接受错误;但是在运行时,Sgc.Sys.String是未定义的,因此Sgs.Sys.String.trim(输入)会触发异常。

当String.ts和Number.ts位于同一文件夹中时,我应该从Sgc.Sys.Number内部调用Sgc.Sys.String.trim。\ Sgc \ Sys?

谢谢, MG

2 个答案:

答案 0 :(得分:2)

您必须添加对Number.ts文件的引用:

/// <reference path="String.ts" />

答案 1 :(得分:0)

如果在运行时收到错误,则需要确保在页面上包含两个已编译的JavaScript文件。

我假设您没有根据代码示例使用模块加载。

<script src="/Sgc/Sys/String.js"></script>
<script src="/Sgc/Sys/Number.js"></script>

补充说明......

TypeScript默认情况下会定位ECMAScript 3,因此您的“使用严格”声明不会产生任何影响 - 您需要针对此功能定位ECMAScript 5.