我正在使用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
答案 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.