出于可读性原因,每个TypeScript文件只有一个类。
档案TypeScript/Components/MyComponent/A.ts
:
namespace MyComponent {
export class A {...}
档案TypeScript/Components/MyComponent/B.ts
:
namespace MyComponent {
export class B {...}
每个组件文件夹都包含tsconfig.json
和outFile
选项,因此每个组件可以获得一个合并的js文件mycomponent.js
,而无需显式引用同一组件中的任何类。
一切正常但我不喜欢将内部模块MyComponent
转换为多个IIFE:
var MyComponent;
(function (MyComponent) {
...
MyComponent.A = A;
})(MyComponent || (MyComponent = {}));
var MyComponent;
(function (MyComponent) {
...
MyComponent.B = B;
})(MyComponent || (MyComponent = {}));
我可以告诉TypeScript只为MyComponent
生成一个IIFE,类似于在一个模块内部和一个文件中定义多个类时的方式吗?如果我基于多个ts文件生成一个js文件,则编译器不应该看到模块被重用"然后将类合并到一个模块中?
同样,如果只有MyComponent
内部而不是外部可见的课程,那就太棒了。现在我必须使用export
公开每个类,否则即使在同一个模块中也会出现Cannot find name ...
编译错误。
我正在使用TypeScript 1.7。我也没有使用任何特殊的模块。我只是将合并的组件js-file发送给客户端。
答案 0 :(得分:0)
我可以告诉TypeScript只为MyComponent生成一个IIFE,类似于在一个模块内部和一个文件中定义多个类时的操作方式吗?
TypeScript编译器目前不提供此优化。正在讨论TypeScript缩小:https://github.com/Microsoft/TypeScript/issues/8