1

我正在使用打字稿。

我在文件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 的方法 trim 必须如上所述定义/调用才能被 TypeScript 无错误地接受;但是,在运行时 Sgc.Sys.String 未定义,因此 Sgs.Sys.String.trim(input) 触发异常。

当 String.ts 和 Number.ts 都在同一个文件夹 ..\Sgc\Sys 中时,我应该能够从 Sgc.Sys.Number 内部调用 Sgc.Sys.String.trim 什么?

谢谢,MG

4

2 回答 2

2

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

/// <reference path="String.ts" />
于 2012-10-24T19:57:32.670 回答
0

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

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

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

补充说明...

默认情况下,TypeScript 以 ECMAScript 3 为目标,因此您的“使用严格”语句不会有任何效果 - 您需要针对此功能以 ECMAScript 5 为目标。

于 2012-10-24T21:58:52.517 回答