gpt4 book ai didi

typescript - 每个类的文件方法和模块内部类

转载 作者:搜寻专家 更新时间:2023-10-30 22:02:39 25 4
gpt4 key购买 nike

出于可读性原因,我每个 TypeScript 文件只有一个类。

文件TypeScript/Components/MyComponent/A.ts:

namespace MyComponent {
export class A {...}

文件TypeScript/Components/MyComponent/B.ts:

namespace MyComponent {
export class B {...}

每个组件文件夹都包含一个带有 outFile 选项的 tsconfig.json 所以我得到一个合并的 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 文件发送给客户端。

最佳答案

Can I tell TypeScript to only generate one IIFE for MyComponent similar to how it is done when I define multiple classes inside one module and inside one file?

TypeScript 编译器目前不提供这种优化。此处正在讨论 TypeScript 缩小:https://github.com/Microsoft/TypeScript/issues/8

关于typescript - 每个类的文件方法和模块内部类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35026053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com