我正在尝试创建一个静态帮助函数,我可以从任何TypeScript模块中访问它,我确实找到了这个帖子(Can I declare a static private function in typescript?),其答案似乎是我需要的正确轨道,但是对于某些人来说因为TypeScript 1.4编译器不断抛出此错误:
错误TS2339:属性'对话框'在类型' typeof App'。
上不存在这是我在utility.ts
文件中实现的代码:
module App.Dialog {
export module Modal {
export function testHelper(link: string) {
return 'worked';
}
}
}
并在我的主文件中,我希望呼叫testHelper
我有:
module App.Services {
export class OrderService implements Interfaces.IService {
...
App.Dialog.Modal.testHelper('test')
}
这也是各种任意辅助函数的最佳实践吗?我想创建的实际帮助器将被称为getApiDate(),并将返回我需要发送到我的API的精确日期字符串格式,并且需要在任何模块中快速轻松地访问,理想情况下无需实例化整个类,就像你在C#中创建一个静态类和方法一样。
答案 0 :(得分:3)
该代码工作正常如下所示:
您可能缺少reference
标记。完整代码:
utility.ts
module App.Dialog {
export module Modal {
export function testHelper(link: string) {
return 'worked';
}
}
}
testHelper.ts
/// <reference path="./utility.ts"/>
module App.Services {
export class OrderService {
constructor() {
Dialog.Modal.testHelper('test');
}
}
}
PS:提示您可能已经知道:内部和外部模块之间的区别:https://www.youtube.com/watch?v=KDrWLMUY0R0&hd=1