Javascript 编译typescript时避免使用全局函数
在将typescript编译为javascript时,如何避免创建全局函数 优点:混淆器不必提供公共API Foo.ts:Javascript 编译typescript时避免使用全局函数,javascript,typescript,obfuscation,Javascript,Typescript,Obfuscation,在将typescript编译为javascript时,如何避免创建全局函数 优点:混淆器不必提供公共API Foo.ts: class Foo {} Foo.js: var Foo = (function () { function Foo() { } return Foo; }()); Foo.obfuscated.js(使用npm jsobfuscator): Foo仍然可见。我理解为什么(公共API)。解决办法是: Foo.isolated.js: (funct
class Foo {}
Foo.js:
var Foo = (function () {
function Foo() {
}
return Foo;
}());
Foo.obfuscated.js(使用npm jsobfuscator):
Foo仍然可见。我理解为什么(公共API)。解决办法是:
Foo.isolated.js:
(function() { /* code from Foo.js */ })();
Foo.insolated.obfuscated.js(我想要什么):
是否有针对
tsconfig.js
/编译器选项的typescript设置,如隔离:true
或其他什么?将类包装在函数范围内应该可以实现这一点
(function(){
class Foo {}
})
据我所知,没有选项形式的内置支持。如果执行上述操作无法实现您的目标,请告诉我-在这种情况下,有关目标的更多详细信息将帮助我们了解您的目标。嵌套(私有)类
考虑使用模块,如果这对你来说太多了,只需使用一个自调用函数。
var _0xe1f1=[];var _0xa6a8=[];(function(){var _0x64f8x2=(function(){function _0x64f8x2(){}return _0x64f8x2}())})()
(function(){
class Foo {}
})
module MyModule {
export class MyPublicClass {
private myPrivateClass: PrivateClass;
constructor() {
this.myPrivateClass = new PrivateClass;
}
public test() {
this.myPrivateClass.test();
}
}
class PrivateClass {
public test() {
console.log('it works');
}
}
}