gpt4 book ai didi

typescript - 闭包编译器 + typescript

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

我想使用 Typescript,然后使用 Closure Compile(高级编译)来针对 ES5 并缩小输出。

我必须使用 tsickle 吗?代替 tsc?它缺乏对 tsc 拥有的所有选项的支持,并且雄心勃勃,因为它希望将 Typescript 类型转换为 Closure 类型(并非 100% 兼容)。我真的不需要使用闭包类型;我只需要缩小/属性重命名。

我可以使用 tsc 将 Typescript 编译为 ES6 模块并使用 Closure Compiler 来缩小它们(没有类型检查或基于类型的优化)吗?

奖励:如果我想使用 Closure Library,这个答案会改变吗?

最佳答案

从技术上讲,您可以从 tsc 获取 ES6 输出并将其立即通过管道传输到 Closure 编译器,因为后者被指定为接受 JS 作为输入。我们已经在很多地方这样做了,例如。使用闭包编译器编译的 Angular 应用程序采用 rxjs 库分发并将其包含在闭包包中。参见 https://github.com/angular/closure-demo

在实践中,我们发现了一些在 Closure 看到它之前使用 tsickle 之类的东西来转换 JS 的原因。

  • enums emit 在闭包(或汇总 IIUC)中不起作用
  • Closure 在 ES6 中有一些限制,例如它目前不支持 export * - tsickle 将其重写为 export {each, visible, symbol}
  • 添加 JSDoc 注释有助于闭包理解代码的结构,从而改进优化并减少它打印的警告数量。

我们目前的计划是将 tsickle 分解为多个 TS 2.3 emit 转换,然后我们可以更清楚哪些转换实际上需要在编译器中启用。

添加类型是可选的。如果您关闭 tsickle 的输入模式,我们将只为类型打印 {?}。但是,如果您想要使用闭包 JS 代码的 TypeScript 输出,那么您将希望闭包类型检查器知道类型。

如果您喜欢新的构建工具,我们将在 https://github.com/bazelbuild/rules_typescript 中将 tsickle 构建到 Bazel 工具链中在某一点。同时,您可以为 Tsickle 的 main 提交功能请求以支持更多命令行标志。 (但我认为 Lucidchart 已经维护了 Tsickle 的一个分支?)

关于typescript - 闭包编译器 + typescript ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45046200/

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