gpt4 book ai didi

javascript - TypeScript/JavaScript 缩小

转载 作者:行者123 更新时间:2023-11-28 11:33:25 25 4
gpt4 key购买 nike

我有一个用 TypeScript 编写的 Web 应用程序,在某些时候,已编译的 .ts 文件的所有输出都将被缩小。

现在,在我的代码中的某个时刻,我做了这样的事情:

class Test {
testProperty: any;
constructor() {
this.getMethods();
}
private getMethods(){
for (var method in this) {
if (method.endsWith("Method")) {
alert(method);
}
}
}

doSomethingMethod(){}
}

var x = new Test();

虽然我自己没有做过任何测试,但从我读到的内容( this blog postthe first comment of this SO answer )来看,缩小时,所有函数名称、属性等都会改变。

.ts 文件输出的缩小会改变这种获取方法名称的方式吗?它取决于缩小的类型吗?

编辑:我在压缩器( jscompress.com )中引入了上面 .ts 文件的输出,结果如下:

var Test=function(){function t(){this.getMethods()}return t.prototype.getMethods=function(){for(var t in this)t.endsWith("Method")&&alert(t)},t.prototype.doSomethingMethod=function(){},t}(),x=new Test;

正如您所看到的,这个缩小版本不会影响变量名称,并且代码保留了其预期功能。

我想知道的是:是否有缩小工具可以改变对象的命名?

最佳答案

正如其他答案中已经指出的 - 大多数 JavaScript 缩小器不会更改公开可用符号的名称,因为它可能会破坏外部代码。

但是,一些压缩器提供了更激进的压缩模式,这些模式实际上可能会重命名外部作用域可能可见的符号,除非您使用特殊注释或其他一些技术来保护它们。例如,看看高级编译模式下的 Google Closure 编译器 - https://developers.google.com/closure/compiler/docs/api-tutorial3

关于javascript - TypeScript/JavaScript 缩小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32524728/

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