我目前有一个大的TypeScript文件,我想将其拆分。有一些函数和变量只在文件内使用,并且有许多类。它当前的样子大致是这样的:
var numbers = [1, 2, 3];
function formatDate() {...}
class Widget { ... }
class Section { ... }
我尝试将这个放在一个模块中,并将其分割成几个文件:
//Widget.ts
module ReportTemplate {
export class Widget { ... }
}
//Section.ts
module ReportTemplate {
export class Section { ... }
}
//ReportTemplate.ts
/// <reference path="Widget.ts"/>
/// <reference path="Section.ts"/>
module ReportTemplate {
var numbers = [1, 2, 3];
function formatDate() { ... }
}
我原本希望这与我的原始文件相同,只是将其放在一个模块中,但我发现“Widget”和“Section”无法访问“numbers”和“formatDate”。我不确定是否误解了参考文献,所以我尝试在“Section.ts”和“Widget.ts”中添加对“ReportTemplate.ts”的引用,但没有帮助。我发现唯一允许“Section.ts”和“Widget.ts”访问“numbers”和“formatDate”的方法是导出它们,但我不想让它们在模块外部可访问。我已经阅读了很多关于TypeScript模块的文章,但没有找到与我尝试做的相同的示例,所以我仍然感到困惑。我是在尝试做一些不可能完成的事情,还是我走错了方向?
export
用于使模块外部公开,但实际上它是用于使文件外部公开吗? - Timexport
的变量和函数。未被export
的函数和变量仍然留在闭包内部。 - Stephen Chung